RTEMS 6.1-rc1
Data Structures
PGMC

Data Structures

struct  _pgmc_bpc_cpu_power_mode_option
 The control option of the power domain controlled by CPU power mode. More...
 
struct  _pgmc_bpc_setpoint_mode_option
 The control option of the power domain controlled by setpoint mode. More...
 

Driver version

enum  {
  kPGMC_SetPoint0 = 1UL << 0UL , kPGMC_SetPoint1 = 1UL << 1UL , kPGMC_SetPoint2 = 1UL << 2UL , kPGMC_SetPoint3 = 1UL << 3UL ,
  kPGMC_SetPoint4 = 1UL << 4UL , kPGMC_SetPoint5 = 1UL << 5UL , kPGMC_SetPoint6 = 1UL << 6UL , kPGMC_SetPoint7 = 1UL << 7UL ,
  kPGMC_SetPoint8 = 1UL << 8UL , kPGMC_SetPoint9 = 1UL << 9UL , kPGMC_SetPoint10 = 1UL << 10UL , kPGMC_SetPoint11 = 1UL << 11UL ,
  kPGMC_SetPoint12 = 1UL << 12UL , kPGMC_SetPoint13 = 1UL << 13UL , kPGMC_SetPoint14 = 1UL << 14UL , kPGMC_SetPoint15 = 1UL << 15UL
}
 The enumeration of setpoint. . More...
 
enum  _pgmc_mif_signal_behaviour {
  kPGMC_AssertSleepSignal = 1U << 0U , kPGMC_AssertInputGateSignal = 1U << 1U , kPGMC_AssetLowSpeedSignal = 1U << 2U , kPGMC_AssertHighSpeedSignal = 1U << 3U ,
  kPGMC_AssertStandbySignal = 1U << 4U , kPGMC_AssertArrayPowerDownSignal = 1U << 5U , kPGMC_AssertPeripheralPowerDownSignal = 1U << 6U , kPGMC_AssertInitnSignal = 1U << 7U ,
  kPGMC_AssertSwitch1OffSignal = 1U << 8U , kPGMC_AssertSwitch2OffSignal = 1U << 9U , kPGMC_AssertIsoSignal = 1U << 10U
}
 The enumeration of MIF signal behaviour(Such as Sleep Signal, Standby Signal, and so on). More...
 
enum  _pgmc_bpc_assign_domain { kPGMC_CM7Core = 0U , kPGMC_CM4Core = 1U }
 PGMC BPC assign domain enumeration. More...
 
enum  _pgmc_cpu_mode { kPGMC_RunMode = 0x0UL , kPGMC_WaitMode = 0x1UL , kPGMC_StopMode = 0x2UL , kPGMC_SuspendMode = 0x3UL }
 CPU mode. More...
 
enum  _pgmc_control_mode { kPGMC_DisableLowPowerControl = 0UL , kPGMC_ControlledByCpuPowerMode = 1UL , kPGMC_ControlledBySetPoint = 2UL }
 PGMC control modes.
 
enum  _pgmc_memory_low_power_level {
  kPGMC_MLPLHighSpeed = 1U , kPGMC_MLPLNormal = 3U , kPGMC_MLPLLowSpeed = 4U , kPGMC_MLPLInputGating = 5U ,
  kPGMC_MLPLStandby = 6U , kPGMC_MLPLSleep = 8U , kPGMC_MLPLArrOnPerOff = 9U , kPGMC_MLPLArrOffPerOn = 10U ,
  kPGMC_MLPLArrOffPerOff = 11U , kPGMC_MLPLSw2 = 13U , kPGMC_MLPLSw2PerOff = 14U , kPGMC_MLPLSw1PerOff = 15U
}
 The enumeration of memory low power level. More...
 
enum  _pgmc_mif_signal {
  kPGMC_SleepSignal = 0U , kPGMC_InputGateSignal = 1U , kPGMC_LowSpeedSignal = 2U , kPGMC_HighSpeedSignal = 3U ,
  kPGMC_StandbySignal = 4U , kPGMC_ArrayPowerDownSignal = 5U , kPGMC_PeripheralPowerDownSignal = 6U , kPGMC_InitnSignal = 7U ,
  kPGMC_Switch1OffSignal = 8U , kPGMC_Switch2OffSignal = 9U , kPGMC_IsoSignal = 10U
}
 The enumeration of MIF signal. More...
 
typedef enum _pgmc_bpc_assign_domain pgmc_bpc_assign_domain_t
 PGMC BPC assign domain enumeration.
 
typedef enum _pgmc_cpu_mode pgmc_cpu_mode_t
 CPU mode.
 
typedef enum _pgmc_control_mode pgmc_control_mode_t
 PGMC control modes.
 
typedef enum _pgmc_memory_low_power_level pgmc_memory_low_power_level_t
 The enumeration of memory low power level.
 
typedef enum _pgmc_mif_signal pgmc_mif_signal_t
 The enumeration of MIF signal.
 
typedef struct _pgmc_bpc_cpu_power_mode_option pgmc_bpc_cpu_power_mode_option_t
 The control option of the power domain controlled by CPU power mode.
 
typedef struct _pgmc_bpc_setpoint_mode_option pgmc_bpc_setpoint_mode_option_t
 The control option of the power domain controlled by setpoint mode.
 
#define FSL_PGMC_RIVER_VERSION   (MAKE_VERSION(2, 1, 1))
 PGMC driver version 2.1.1.
 

Basic Power Controller Related Interfaces

void PGMC_BPC_ControlPowerDomainByCpuPowerMode (PGMC_BPC_Type *base, pgmc_cpu_mode_t mode, const pgmc_bpc_cpu_power_mode_option_t *option)
 Makes the BPC module controlled by the target CPU power mode, such as Wait mode. More...
 
void PGMC_BPC_ControlPowerDomainBySetPointMode (PGMC_BPC_Type *base, uint32_t setPointMap, const pgmc_bpc_setpoint_mode_option_t *option)
 Makes the BPC module controlled by the target set points. More...
 
void PGMC_BPC_ControlPowerDomainBySoftwareMode (PGMC_BPC_Type *base, bool powerOff)
 Controls the selected power domain by software mode. More...
 

CPU Power Controller Related Interfaces

void PGMC_CPC_CORE_PowerOffByCpuPowerMode (PGMC_CPC_Type *base, pgmc_cpu_mode_t mode)
 Powers off the CPC core module by the target CPU power mode, such as Wait mode. More...
 
void PGMC_CPC_CACHE_ControlByCpuPowerMode (PGMC_CPC_Type *base, pgmc_cpu_mode_t mode, pgmc_memory_low_power_level_t memoryLowPowerLevel)
 Makes the CPC CACHE module controlled by the target CPU power mode, such as Wait mode. More...
 
void PGMC_CPC_CACHE_ControlBySetPointMode (PGMC_CPC_Type *base, uint32_t setPointMap, pgmc_memory_low_power_level_t memoryLowPowerLevel)
 Makes the CPC CACHE module controlled by the target set points. More...
 
void PGMC_CPC_CACHE_TriggerMLPLSoftwareChange (PGMC_CPC_Type *base)
 Requests CPC cache module's memory low power level change by software mode. More...
 
void PGMC_CPC_LMEM_ControlByCpuPowerMode (PGMC_CPC_Type *base, pgmc_cpu_mode_t mode, pgmc_memory_low_power_level_t memoryLowPowerLevel)
 Makes the CPC LMEM module controlled by the target CPU power mode, such as Wait mode. More...
 
void PGMC_CPC_LMEM_ControlBySetPointMode (PGMC_CPC_Type *base, uint32_t setPointMap, pgmc_memory_low_power_level_t memoryLowPowerLevel)
 Makes the CPC LMEM module controlled by the target set points. More...
 
void PGMC_CPC_LMEM_TriggerMLPLSoftwareChange (PGMC_CPC_Type *base)
 Requests CPC LMEM module's memory low power level change in software mode. More...
 

MIF Module Related APIs

void PGMC_MIF_SetSignalBehaviour (PGMC_MIF_Type *base, pgmc_memory_low_power_level_t memoryLevel, uint32_t mask)
 Sets the behaviour of each signal in MIF, such as Sleep signal. More...
 

PMIC Power Related Interfaces

void PGMC_PPC_ControlByCpuPowerMode (PGMC_PPC_Type *base, pgmc_cpu_mode_t mode)
 Makes the PMIC module controlled by the target CPU power mode, such as Wait mode. More...
 
void PGMC_PPC_ControlBySetPointMode (PGMC_PPC_Type *base, uint32_t setPointMap, bool enableStandby)
 Makes the PMIC module controlled by the target set points. More...
 

Detailed Description

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

The enumeration of setpoint. .

Enumerator
kPGMC_SetPoint0 

The mask of set point0.

kPGMC_SetPoint1 

The mask of set point1.

kPGMC_SetPoint2 

The mask of set point2.

kPGMC_SetPoint3 

The mask of set point3.

kPGMC_SetPoint4 

The mask of set point4.

kPGMC_SetPoint5 

The mask of set point5.

kPGMC_SetPoint6 

The mask of set point6.

kPGMC_SetPoint7 

The mask of set point7.

kPGMC_SetPoint8 

The mask of set point8.

kPGMC_SetPoint9 

The mask of set point9.

kPGMC_SetPoint10 

The mask of set point10.

kPGMC_SetPoint11 

The mask of set point11.

kPGMC_SetPoint12 

The mask of set point12.

kPGMC_SetPoint13 

The mask of set point13.

kPGMC_SetPoint14 

The mask of set point14.

kPGMC_SetPoint15 

The mask of set point15.

◆ _pgmc_bpc_assign_domain

PGMC BPC assign domain enumeration.

Enumerator
kPGMC_CM7Core 

CM7 Core domain.

kPGMC_CM4Core 

CM4 Core domain.

◆ _pgmc_cpu_mode

CPU mode.

Enumerator
kPGMC_RunMode 

RUN mode.

kPGMC_WaitMode 

WAIT mode.

kPGMC_StopMode 

STOP mode.

kPGMC_SuspendMode 

SUSPEND mode.

◆ _pgmc_memory_low_power_level

The enumeration of memory low power level.

Enumerator
kPGMC_MLPLHighSpeed 

Memory low power level: High speed.

kPGMC_MLPLNormal 

Memory low power level: Normal.

kPGMC_MLPLLowSpeed 

Memory low power level: Low Speed.

kPGMC_MLPLInputGating 

Memory low power level: Input Gating.

kPGMC_MLPLStandby 

Memory low power level: Standby.

kPGMC_MLPLSleep 

Memory low power level: Sleep.

kPGMC_MLPLArrOnPerOff 

Memory low power level: Arr on per off.

kPGMC_MLPLArrOffPerOn 

Memory low power level: Arr off per on.

kPGMC_MLPLArrOffPerOff 

Memory low power level: Arr off per off.

kPGMC_MLPLSw2 

Memory low power level: SW2.

kPGMC_MLPLSw2PerOff 

Memory low power level: SW2 Per off.

kPGMC_MLPLSw1PerOff 

Memory low power level: SW1 Per off.

◆ _pgmc_mif_signal

The enumeration of MIF signal.

Enumerator
kPGMC_SleepSignal 

MIF Sleep signal.

kPGMC_InputGateSignal 

MIF InputGate signal.

kPGMC_LowSpeedSignal 

MIF LowSpeed signal.

kPGMC_HighSpeedSignal 

MIF HighSpeed signal.

kPGMC_StandbySignal 

MIF Standby signal.

kPGMC_ArrayPowerDownSignal 

MIF ArrayPowerDown signal.

kPGMC_PeripheralPowerDownSignal 

MIF PeripheralPowerDown signal.

kPGMC_InitnSignal 

MIF Initn signal.

kPGMC_Switch1OffSignal 

MIF Switch1Off signal.

kPGMC_Switch2OffSignal 

MIF Switch2Off signal.

kPGMC_IsoSignal 

MIF Iso_en signal.

◆ _pgmc_mif_signal_behaviour

The enumeration of MIF signal behaviour(Such as Sleep Signal, Standby Signal, and so on).

Enumerator
kPGMC_AssertSleepSignal 

Assert Sleep signal.

kPGMC_AssertInputGateSignal 

Assert InputGate signal.

kPGMC_AssetLowSpeedSignal 

Assert LowSpeed signal.

kPGMC_AssertHighSpeedSignal 

Assert HighSpeed signal.

kPGMC_AssertStandbySignal 

Assert Standby signal.

kPGMC_AssertArrayPowerDownSignal 

Assert ArrayPowerDown signal.

kPGMC_AssertPeripheralPowerDownSignal 

Assert PeripheralPowerDown signal.

kPGMC_AssertInitnSignal 

Assert Initn signal.

kPGMC_AssertSwitch1OffSignal 

Assert Switch1Off signal.

kPGMC_AssertSwitch2OffSignal 

Assert Switch2Off signal.

kPGMC_AssertIsoSignal 

Assert Iso_en signal.

Function Documentation

◆ PGMC_BPC_ControlPowerDomainByCpuPowerMode()

void PGMC_BPC_ControlPowerDomainByCpuPowerMode ( PGMC_BPC_Type base,
pgmc_cpu_mode_t  mode,
const pgmc_bpc_cpu_power_mode_option_t option 
)

Makes the BPC module controlled by the target CPU power mode, such as Wait mode.

This function makes the module controlled by four typical CPU power modes, It also configs the resource domain and set memory low power level.

Parameters
basePGMC basic power controller base address.
modeTarget CPU power mode.
optionThe pointer of pgmc_bpc_cpu_power_mode_option_t structure.

brief Makes the BPC module controlled by the target CPU power mode(Such as Wait mode).

This function makes the module controlled by four typical CPU power modes, It also configs the resource domain and set memory low power level.

param base PGMC basic power controller base address. param mode Target CPU power mode. param option The pointer of pgmc_bpc_cpu_power_mode_option_t structure.

◆ PGMC_BPC_ControlPowerDomainBySetPointMode()

void PGMC_BPC_ControlPowerDomainBySetPointMode ( PGMC_BPC_Type base,
uint32_t  setPointMap,
const pgmc_bpc_setpoint_mode_option_t option 
)

Makes the BPC module controlled by the target set points.

This function makes the module controlled by specific set point, It also supports set memory lowe power level.

Note
When setting more than one set point, use "|" between the map values in _pgmc_setpoint_map.
Parameters
basePGMC basic power controller base address.
setPointMapShould be the OR'ed value of _pgmc_setpoint_map.
optionThe pointer of pgmc_bpc_setpoint_mode_option_t structure.

brief Makes the BPC module controlled by the target set points.

This function makes the module controlled by specific set point, It also supports set memory lowe power level.

note When setting more than one set point, use "|" between the map values in _pgmc_setpoint_map.

param base PGMC basic power controller base address. param setPointMap Should be the OR'ed value of _pgmc_setpoint_map. param option The pointer of pgmc_bpc_setpoint_mode_option_t structure.

◆ PGMC_BPC_ControlPowerDomainBySoftwareMode()

void PGMC_BPC_ControlPowerDomainBySoftwareMode ( PGMC_BPC_Type base,
bool  powerOff 
)

Controls the selected power domain by software mode.

Note
The function is used to control power domain when the CPU is in RUN mode.
Parameters
basePGMC basic power controller base address.
powerOffPower On/Off power domain in software mode.
  • true Power off the power domain in software mode.
  • false Power on the power domain in software mode.

brief Controls the selected power domain by software mode.

note The function is used to control power domain when the CPU is in RUN mode.

param base PGMC basic power controller base address. param powerOff Power On/Off power domain in software mode.

  • true Power off the power domain in software mode.
  • false Power on the power domain in software mode.

◆ PGMC_CPC_CACHE_ControlByCpuPowerMode()

void PGMC_CPC_CACHE_ControlByCpuPowerMode ( PGMC_CPC_Type base,
pgmc_cpu_mode_t  mode,
pgmc_memory_low_power_level_t  memoryLowPowerLevel 
)

Makes the CPC CACHE module controlled by the target CPU power mode, such as Wait mode.

This function makes the module controlled by four typical CPU power modes, it also can set memory low power level.

Parameters
baseCPC CACHE module base address.
modeTarget CPU power mode.
memoryLowPowerLevelMemory low power level.

brief Makes the CPC CACHE module controlled by the target CPU power mode(Such as Wait mode).

This function makes the module controlled by four typical CPU power modes, it also can set memory low power level.

param base CPC CACHE module base address. param mode Target CPU power mode. param memoryLowPowerLevel Memory low power level.

◆ PGMC_CPC_CACHE_ControlBySetPointMode()

void PGMC_CPC_CACHE_ControlBySetPointMode ( PGMC_CPC_Type base,
uint32_t  setPointMap,
pgmc_memory_low_power_level_t  memoryLowPowerLevel 
)

Makes the CPC CACHE module controlled by the target set points.

This function makes the module controlled by specific set point, It also supports set memory lowe power level.

Note
When setting more than one set point, use "|" between the map values in _pgmc_setpoint_map.
Parameters
baseCPC CACHE module base address.
setPointMapShould be the OR'ed value of _pgmc_setpoint_map.
memoryLowPowerLevelMemory low power level.

brief Makes the CPC CACHE module controlled by the target set points.

This function makes the module controlled by specific set point, It also supports set memory lowe power level.

note When setting more than one set point, use "|" between the map values in _pgmc_setpoint_map.

param base CPC CACHE module base address. param setPointMap Should be the OR'ed value of _pgmc_setpoint_map. param memoryLowPowerLevel Memory low power level.

◆ PGMC_CPC_CACHE_TriggerMLPLSoftwareChange()

void PGMC_CPC_CACHE_TriggerMLPLSoftwareChange ( PGMC_CPC_Type base)

Requests CPC cache module's memory low power level change by software mode.

Note
If request memory low power level change, must wait the MLPL transition complete.
Parameters
baseCPC LMEM module base address.

brief Requests CPC cache module's memory low power level change by software mode.

note If request memory low power level change, must wait the MLPL transition complete.

param base CPC LMEM module base address.

◆ PGMC_CPC_CORE_PowerOffByCpuPowerMode()

void PGMC_CPC_CORE_PowerOffByCpuPowerMode ( PGMC_CPC_Type base,
pgmc_cpu_mode_t  mode 
)

Powers off the CPC core module by the target CPU power mode, such as Wait mode.

Parameters
baseCPC CORE module base address.
modeTarget CPU power mode.

brief Powers off the CPC core module by the target CPU power mode(Such as Wait mode).

param base CPC CORE module base address. param mode Target CPU power mode.

◆ PGMC_CPC_LMEM_ControlByCpuPowerMode()

void PGMC_CPC_LMEM_ControlByCpuPowerMode ( PGMC_CPC_Type base,
pgmc_cpu_mode_t  mode,
pgmc_memory_low_power_level_t  memoryLowPowerLevel 
)

Makes the CPC LMEM module controlled by the target CPU power mode, such as Wait mode.

This function makes the module controlled by four typical CPU power modes, it also can set memory low power level.

Parameters
baseCPC LMEM module base address.
modeTarget CPU power mode.
memoryLowPowerLevelMemory low power level.

brief Makes the CPC LMEM module controlled by the target CPU power mode(Such as Wait mode).

This function makes the module controlled by four typical CPU power modes, it also can set memory low power level.

param base CPC LMEM module base address. param mode Target CPU power mode. param memoryLowPowerLevel Memory low power level.

◆ PGMC_CPC_LMEM_ControlBySetPointMode()

void PGMC_CPC_LMEM_ControlBySetPointMode ( PGMC_CPC_Type base,
uint32_t  setPointMap,
pgmc_memory_low_power_level_t  memoryLowPowerLevel 
)

Makes the CPC LMEM module controlled by the target set points.

This function makes the module controlled by specific set point, It also supports set memory lowe power level.

Note
When setting more than one set point, use "|" between the map values in _pgmc_setpoint_map.
Parameters
baseCPC LMEM module base address.
setPointMapShould be the OR'ed value of _pgmc_setpoint_map.
memoryLowPowerLevelMemory low power level.

brief Makes the CPC LMEM module controlled by the target set points.

This function makes the module controlled by specific set point, It also supports set memory lowe power level.

note When setting more than one set point, use "|" between the map values in _pgmc_setpoint_map.

param base CPC LMEM module base address. param setPointMap Should be the OR'ed value of _pgmc_setpoint_map. param memoryLowPowerLevel Memory low power level.

◆ PGMC_CPC_LMEM_TriggerMLPLSoftwareChange()

void PGMC_CPC_LMEM_TriggerMLPLSoftwareChange ( PGMC_CPC_Type base)

Requests CPC LMEM module's memory low power level change in software mode.

Note
If request memory low power level change, must wait the MLPL transition complete.
Parameters
baseCPC LMEM module base address.

brief Requests CPC LMEM module's memory low power level change in software mode.

note If request memory low power level change, must wait the MLPL transition complete.

param base CPC LMEM module base address.

◆ PGMC_MIF_SetSignalBehaviour()

void PGMC_MIF_SetSignalBehaviour ( PGMC_MIF_Type base,
pgmc_memory_low_power_level_t  memoryLevel,
uint32_t  mask 
)

Sets the behaviour of each signal in MIF, such as Sleep signal.

Note
To control the memory low power operation, this function must be invoked after selecting the memory low power level. Use case:
kPGMC_MLPLSleep, false);
#define PGMC_BPC0_BASE
Definition: MIMXRT1166_cm4.h:66761
void PGMC_MIF_SetSignalBehaviour(PGMC_MIF_Type *base, pgmc_memory_low_power_level_t memoryLevel, uint32_t mask)
Sets the behaviour of each signal in MIF, such as Sleep signal.
Definition: fsl_pgmc.c:392
void PGMC_BPC_ControlPowerDomainByCpuPowerMode(PGMC_BPC_Type *base, pgmc_cpu_mode_t mode, const pgmc_bpc_cpu_power_mode_option_t *option)
Makes the BPC module controlled by the target CPU power mode, such as Wait mode.
Definition: fsl_pgmc.c:48
@ kPGMC_WaitMode
Definition: fsl_pgmc.h:83
@ kPGMC_CM7Core
Definition: fsl_pgmc.h:75
@ kPGMC_MLPLSleep
Definition: fsl_pgmc.h:106
@ kPGMC_AssertSleepSignal
Definition: fsl_pgmc.h:57
Parameters
basePGMC MIF peripheral base address.
memoryLevelThe selected memory low power level. For details please refer to pgmc_memory_low_power_level_t.
maskThe mask of MIF signal behaviour. Should be the OR'ed value of _pgmc_mif_signal_behaviour

brief Sets the behaviour of each signal(Such as Sleep signal) in MIF.

note To control the memory low power operation, this function must be invoked after selecting the memory low power level. Use case: code PGMC_BPC_ControlPowerDomainByCpuPowerMode(PGMC_BPC0_BASE, kPGMC_WaitMode, kPGMC_CM7Core, kPGMC_MLPLSleep, false); PGMC_MIF_SetSignalBehaviour(PGMC_BPC0_MIF_BASE, kPGMC_MLPLSleep, kPGMC_AssertSleepSignal); endcode

param base PGMC MIF peripheral base address. param memoryLevel The selected memory low power level. For details please refer to pgmc_memory_low_power_level_t. param mask The mask of MIF signal behaviour. Should be the OR'ed value of _pgmc_mif_signal_behaviour

◆ PGMC_PPC_ControlByCpuPowerMode()

void PGMC_PPC_ControlByCpuPowerMode ( PGMC_PPC_Type base,
pgmc_cpu_mode_t  mode 
)

Makes the PMIC module controlled by the target CPU power mode, such as Wait mode.

Parameters
basePMIC module base address.
modeTarget CPU power mode.

brief Makes the PMIC module controlled by the target CPU power mode(Such as Wait mode).

param base PMIC module base address. param mode Target CPU power mode.

◆ PGMC_PPC_ControlBySetPointMode()

void PGMC_PPC_ControlBySetPointMode ( PGMC_PPC_Type base,
uint32_t  setPointMap,
bool  enableStandby 
)

Makes the PMIC module controlled by the target set points.

This function makes the module controlled by specific set point, It also supports PMIC standby on.

Note
When setting more than one set point, use "|" between the map values in _pgmc_setpoint_map.
Parameters
basePMIC module base address.
setPointMapShould be the OR'ed value of _pgmc_setpoint_map.
enableStandbytrue: PMIC standby on when system enters set point number and system is in standby mode. false: PMIC standby on when system enters set point number

brief Makes the PMIC module controlled by the target set points.

This function makes the module controlled by specific set point, It also supports PMIC standby on.

note When setting more than one set point, use "|" between the map values in _pgmc_setpoint_map.

param base PMIC module base address. param setPointMap Should be the OR'ed value of _pgmc_setpoint_map. param enableStandby true: PMIC standby on when system enters set point number and system is in standby mode. false: PMIC standby on when system enters set point number