# PSC Functions
[PSC]

## Functions
CSL_IDEF_INLINE Uint32 | CSL_PSC_getVersionInfo (void)
CSL_IDEF_INLINE Uint8 | CSL_PSC_getVoltageControl (void)
CSL_IDEF_INLINE void | CSL_PSC_setModuleNextState (Uint32 moduleNum, CSL_PSC_MODSTATE state)
CSL_IDEF_INLINE CSL_PSC_MODSTATE | CSL_PSC_getModuleNextState (Uint32 moduleNum)
CSL_IDEF_INLINE void | CSL_PSC_setModuleLocalReset (Uint32 moduleNum, CSL_PSC_MDLRST resetState)
CSL_IDEF_INLINE CSL_PSC_MDLRST | CSL_PSC_getModuleLocalReset (Uint32 moduleNum)
CSL_IDEF_INLINE void | CSL_PSC_enableModuleResetIsolation (Uint32 moduleNum)
CSL_IDEF_INLINE void | CSL_PSC_disableModuleResetIsolation (Uint32 moduleNum)
CSL_IDEF_INLINE Bool | CSL_PSC_isModuleResetIsolationEnabled (Uint32 moduleNum)
CSL_IDEF_INLINE CSL_PSC_MODSTATE | CSL_PSC_getModuleState (Uint32 moduleNum)
CSL_IDEF_INLINE CSL_PSC_MDLRST | CSL_PSC_getModuleLocalResetStatus (Uint32 moduleNum)
CSL_IDEF_INLINE Bool | CSL_PSC_isModuleLocalResetDone (Uint32 moduleNum)
CSL_IDEF_INLINE CSL_PSC_MDRST | CSL_PSC_getModuleResetStatus (Uint32 moduleNum)
CSL_IDEF_INLINE Bool | CSL_PSC_isModuleResetDone (Uint32 moduleNum)
CSL_IDEF_INLINE Bool | CSL_PSC_isModuleClockOn (Uint32 moduleNum)
CSL_IDEF_INLINE void | CSL_PSC_enablePowerDomain (Uint32 pwrDmnNum)
CSL_IDEF_INLINE void | CSL_PSC_disablePowerDomain (Uint32 pwrDmnNum)
CSL_IDEF_INLINE CSL_PSC_PDSTATE | CSL_PSC_getPowerDomainState (Uint32 pwrDmnNum)
CSL_IDEF_INLINE void | CSL_PSC_startStateTransition (Uint32 pwrDmnNum)
CSL_IDEF_INLINE Uint32 | CSL_PSC_isStateTransitionDone (Uint32 pwrDmnNum)

## Function Documentation

CSL_IDEF_INLINE void CSL_PSC_disableModuleResetIsolation | ( | Uint32 | moduleNum | ) |

===========================================================================
CSL_PSC_disableModuleResetIsolation

Description
This function disables the Module reset isolation control.

Arguments

            moduleNum       Module number for which the configuration must be done.

Return Value None

Pre Condition
None

Post Condition
None

Writes
PSC_MDCTL_RSTISO=0

Example

            ...
            // Disable Module 2's reset isolation
            CSL_PSC_disableModuleResetIsolation (2);
            ...

============================================================================

CSL_IDEF_INLINE void CSL_PSC_disablePowerDomain | ( | Uint32 | pwrDmnNum | ) |

============================================================================
CSL_PSC_disablePowerDomain

Description
This function turns off the specified power domain.

Arguments

            pwrDmnNum       Power domain number that needs to be disabled.

Return Value None

Pre Condition
None

Post Condition
Power domain is disabled.

Writes
PSC_PDCTL_NEXT=0

Example

            ...
            // Off the power domain 2
            CSL_PSC_disablePowerDomain (2);
            ...

============================================================================

CSL_IDEF_INLINE void CSL_PSC_enableModuleResetIsolation | ( | Uint32 | moduleNum | ) |

===========================================================================
CSL_PSC_enableModuleResetIsolation

Description
This function enables the Module reset isolation control.

Arguments

            moduleNum       Module number for which the configuration must be done.

Return Value None

Pre Condition
None

Post Condition
None

Writes
PSC_MDCTL_RSTISO=1

Example

            ...
            // Enable Module 2's reset isolation
            CSL_PSC_enableModuleResetIsolation (2);
            ...

============================================================================

CSL_IDEF_INLINE void CSL_PSC_enablePowerDomain | ( | Uint32 | pwrDmnNum | ) |

============================================================================
CSL_PSC_enablePowerDomain

Description
This function enables the specified power domain.

Arguments

            pwrDmnNum       Power domain number that needs to be enabled.

Return Value None

Pre Condition
None

Post Condition
Power domain is enabled.

Writes
PSC_PDCTL_NEXT=1

Example

            ...
            // On the power domain 2
            CSL_PSC_enablePowerDomain (2);
            ...

============================================================================

CSL_IDEF_INLINE CSL_PSC_MDLRST CSL_PSC_getModuleLocalReset | ( | Uint32 | moduleNum | ) |

===========================================================================
CSL_PSC_getModuleLocalReset

Description
This function reads the Module local reset control configured.

Arguments

            moduleNum       Module number for which the status must be retrieved.

Return Value CSL_PSC_MDLRST

Pre Condition
None

Post Condition
None

Reads
PSC_MDCTL_LRST

Example

     *      Uint32  resetState;

            ...
            // Check Module 2's local reset bit
            resetState = CSL_PSC_getModuleLocalReset (2);
            ...

============================================================================

CSL_IDEF_INLINE CSL_PSC_MDLRST CSL_PSC_getModuleLocalResetStatus | ( | Uint32 | moduleNum | ) |

===========================================================================
CSL_PSC_getModuleLocalResetStatus

Description
This function returns the Module local reset actual status.

Arguments

            moduleNum       Module number for which the status must be retrieved.

Return Value CSL_PSC_MDLRST

Pre Condition
None

Post Condition
None

Reads
PSC_MDSTAT_LRST

Example

            ...
            // Check Module 2's local reset status
            if (CSL_PSC_getModuleLocalResetStatus (2) == PSC_MDLRST_ASSERTED)
            {
                // Module 2's local reset asserted.
                ...
            }
            ...

============================================================================

CSL_IDEF_INLINE CSL_PSC_MODSTATE CSL_PSC_getModuleNextState | ( | Uint32 | moduleNum | ) |

===========================================================================
CSL_PSC_getModuleNextState

Description
This function returns the next state configured for a given module.

Arguments

            moduleNum       Module number for which the state must be retrieved.

Return Value CSL_PSC_MODSTATE

Pre Condition
None

Post Condition
None

Reads
PSC_MDCTL_NEXT

Example

            ...
            // Check Module 2's next state configured
            if (CSL_PSC_getModuleNextState (2) == PSC_MODSTATE_ENABLE)
            {
                ...
            }
            ...

============================================================================

CSL_IDEF_INLINE CSL_PSC_MDRST CSL_PSC_getModuleResetStatus | ( | Uint32 | moduleNum | ) |

===========================================================================
CSL_PSC_getModuleResetStatus

Description
This function returns the Module reset actual status.

Arguments

            moduleNum       Module number for which the status must be retrieved.

Return Value CSL_PSC_MDRST

Pre Condition
None

Post Condition
None

Reads
PSC_MDSTAT_MRST

Example

            ...
            // Check Module 2's reset status
            if (CSL_PSC_getModuleResetStatus (2) == PSC_MDRST_ASSERTED)
            {
                // Module 2's reset asserted.
                ...
            }
            ...

============================================================================

CSL_IDEF_INLINE CSL_PSC_MODSTATE CSL_PSC_getModuleState | ( | Uint32 | moduleNum | ) |

===========================================================================
CSL_PSC_getModuleState

Description
This function returns the current state of a given module.

Arguments

            moduleNum       Module number for which the state must be retrieved.

Return Value CSL_PSC_MODSTATE

Pre Condition
None

Post Condition
Power Domain status is returned

Reads
PSC_MDSTAT_STATE

Example

            ...
            // Check if Module 2's clock is enabled.
            if (CSL_PSC_getModuleState (2) == PSC_MODSTATE_ENABLE)
            {
                // Module 2's clock is enabled.
                ...
            }
            ...

============================================================================

CSL_IDEF_INLINE CSL_PSC_PDSTATE CSL_PSC_getPowerDomainState | ( | Uint32 | pwrDmnNum | ) |

===========================================================================
CSL_PSC_getPowerDomainState

Description
This function returns the current state of a given power domain.

Arguments

            pwrDmnNum       Power domain number for which the state must be retrieved.

Return Value CSL_PSC_PDSTATE

Pre Condition
None

Post Condition
Power Domain status is returned

Reads
PSC_PDSTAT_STATE

Example

            ...
            // Check if Power domain is On.
            if (CSL_PSC_getPowerDomainState(2) == PSC_PDSTATE_ON)
            {
                // Power domain 2 is on
                ...
            }
            else
            {
                // Power domain 2 is off
            }
            ...

============================================================================

CSL_IDEF_INLINE Uint32 CSL_PSC_getVersionInfo | ( | void |  | ) |

============================================================================
CSL_PSC_getVersionInfo

Description
This function retrieves the PSC peripheral identification register contents.

Arguments
None

Return Value Uint32 - version value

Pre Condition
None

Post Condition
None

Reads
PSC_PID

Example

            Uint32      versionInfo;

            versionInfo =   CSL_PSC_getVersionInfo ();

=============================================================================

CSL_IDEF_INLINE Uint8 CSL_PSC_getVoltageControl | ( | void |  | ) |

============================================================================
CSL_PSC_getVoltageControl

Description
This function retrieves the Smart reflex bits from the voltage control identification register.

Arguments
None

Return Value Uint8

Pre Condition
None

Post Condition
None

Reads
PSC_VCNTLID_VCNTL

Example

            Uint32      vcntlInfo;

            vcntlInfo =   CSL_PSC_getVoltageControl ();

=============================================================================

CSL_IDEF_INLINE Bool CSL_PSC_isModuleClockOn | ( | Uint32 | moduleNum | ) |

===========================================================================
CSL_PSC_isModuleClockOn

Description
This function returns the actual modclk output to module.

Arguments

            moduleNum       Module number for which the clock status must be retrieved.

Return Value Bool

Pre Condition
None

Post Condition
None

Reads
PSC_MDSTAT_MCKOUT

Example

            ...
            // Check Module 2's modclk status
            if (CSL_PSC_isModuleClockOn (2))
            {
                // Module 2's modclk on.
                ...
            }
            else
            {
                // Module 2's modclk gated.
                ...
            }
            ...

============================================================================

CSL_IDEF_INLINE Bool CSL_PSC_isModuleLocalResetDone | ( | Uint32 | moduleNum | ) |

===========================================================================
CSL_PSC_isModuleLocalResetDone

Description
This function returns the Module local reset initialization done status.

Arguments

            moduleNum       Module number for which the status must be retrieved.

Return Value Bool

Pre Condition
None

Post Condition
None

Reads
PSC_MDSTAT_LRSTDONE

Example

            ...
            // Check Module 2's local reset initialization done status
            if (CSL_PSC_isModuleLocalResetDone (2))
            {
                // Module 2's local reset init done.
                ...
            }
            ...

============================================================================

CSL_IDEF_INLINE Bool CSL_PSC_isModuleResetDone | ( | Uint32 | moduleNum | ) |

===========================================================================
CSL_PSC_isModuleResetDone

Description
This function returns the Module reset initialization done status.

Arguments

            moduleNum       Module number for which the status must be retrieved.

Return Value Bool

Pre Condition
None

Post Condition
None

Reads
PSC_MDSTAT_MRSTDONE

Example

            ...
            // Check Module 2's reset initialization done status
            if (CSL_PSC_isModuleResetDone (2))
            {
                // Module 2's reset init done.
                ...
            }
            ...

============================================================================

CSL_IDEF_INLINE Bool CSL_PSC_isModuleResetIsolationEnabled | ( | Uint32 | moduleNum | ) |

===========================================================================
CSL_PSC_isModuleResetIsolationEnabled

Description
This function reads the Module reset isolation control bit.

Arguments

            moduleNum       Module number for which the status must be retrieved.

Return Value Bool

Pre Condition
None

Post Condition
None

Reads
PSC_MDCTL_RSTISO

Example

            ...
            // Check Module 2's reset isolation configuration
            if (CSL_PSC_isModuleResetIsolationEnabled (2) == TRUE)
            {
                // Module 2 reset isolation enabled
            }
            ...

============================================================================

CSL_IDEF_INLINE Uint32 CSL_PSC_isStateTransitionDone | ( | Uint32 | pwrDmnNum | ) |

===========================================================================
CSL_PSC_isStateTransitionDone

Description
This function gets the transition status of the power domain. This function returns 0 to indicate that the state transition initiated earlier using CSL_PSC_startStateTransition () API for the specified power domain has not yet been completed, and is in progress still. This function returns 1 to indicate when this transition is completed in the hardware.

Arguments

            pwrDmnNum       Power domain number for which the state transition status
                            must be retrieved.

Return Value Uint32

Pre Condition
None

Post Condition
Power domain transition status value is read

Reads
PSC_PTSTAT

Example

            ...
            // Ensure no transition in progress for Power domain 2
            // before we start a new one.
            while (!CSL_PSC_isStateTransitionDone (2));

            // To Enable Power domain 2 and modules 3, 4
            CSL_PSC_enablePowerDomain (2);
            CSL_PSC_setModuleNextState (3, PSC_MODSTATE_ENABLE);
            CSL_PSC_setModuleNextState (4, PSC_MODSTATE_ENABLE);
            CSL_PSC_startStateTransition (2);

            // Wait until the transition process is completed.
            while (!CSL_PSC_isStateTransitionDone (2));
            ...

============================================================================

CSL_IDEF_INLINE void CSL_PSC_setModuleLocalReset | ( | Uint32 | moduleNum,
|  | CSL_PSC_MDLRST | resetState |
| ) |  |  |

===========================================================================
CSL_PSC_setModuleLocalReset

Description
This function configures the Module local reset control.

Arguments

            moduleNum       Module number for which the status must be retrieved.
            resetState      Assert/Deassert module local reset.

Return Value None

Pre Condition
None

Post Condition
None

Writes
PSC_MDCTL_LRST

Example

            ...
            // Assert Module 2's local reset
            CSL_PSC_setModuleLocalReset (2, PSC_MDLRST_ASSERTED);
            ...

============================================================================

CSL_IDEF_INLINE void CSL_PSC_setModuleNextState | ( | Uint32 | moduleNum,
|  | CSL_PSC_MODSTATE | state |
| ) |  |  |

============================================================================
CSL_PSC_setModuleNextState

Description
This function sets up the "Next" state the module should be transitioned for a given module.

Arguments

            moduleNum       LPSC Module for which the next state must be configured.
            state           Next state to which the module must be transitioned.

Return Value None

Pre Condition
None

Post Condition
Module is moved to configured next state after transition is triggered using CSL_PSC_startStateTransition () API.

Writes
PSC_MDCTL_NEXT

Example

            ...
            // Enable Module 1's clock.
            CSL_PSC_setModuleNextState (1, PSC_MODSTATE_ENABLE);
            ...

============================================================================

CSL_IDEF_INLINE void CSL_PSC_startStateTransition | ( | Uint32 | pwrDmnNum | ) |

============================================================================
CSL_PSC_startStateTransition

Description
This function sets the 'GO' bit in the PSC Command register. All state transitions marked for a specified power domain and all its modules are initiated by the hardware.

This function starts a given Power domain and all its modules state transition.

Arguments

            pwrDmnNum       Power domain number for which the state transition
                            must be initiated.

Return Value None

Pre Condition
None

Post Condition
Power domain and modules are moved to a new "Next" state as marked earlier using APIs: CSL_PSC_setModuleNextState (), CSL_PSC_enablePowerDomain (), CSL_PSC_disablePowerDomain ().

Writes
PSC_PTCMD

Example

            ...
            // To Enable Power domain 2 and modules 3, 4
            CSL_PSC_enablePowerDomain (2);
            CSL_PSC_setModuleNextState  (3, PSC_MODSTATE_ENABLE);
            CSL_PSC_setModuleNextState (4, PSC_MODSTATE_ENABLE);
            CSL_PSC_startStateTransition (2);
            ...

============================================================================

Copyright 2012, Texas Instruments Incorporated