pm: cc13x2_cc26x2: Implement their own constraint
TI Hal has its own constraint API that is used by its drivers. These constraints need to be correlated with Zephyr constraints to be constraints set in the HAL be visible on Zephyr and vice-versa. Fixes #38362 Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
This commit is contained in:
parent
8beb34237b
commit
351fd170bd
1 changed files with 50 additions and 0 deletions
|
@ -182,5 +182,55 @@ void PowerCC26XX_schedulerRestore(void)
|
|||
*/
|
||||
}
|
||||
|
||||
/* Constraint API hooks */
|
||||
|
||||
void pm_constraint_set(enum pm_state state)
|
||||
{
|
||||
switch (state) {
|
||||
case PM_STATE_RUNTIME_IDLE:
|
||||
Power_setConstraint(PowerCC26XX_DISALLOW_IDLE);
|
||||
break;
|
||||
case PM_STATE_STANDBY:
|
||||
Power_setConstraint(PowerCC26XX_DISALLOW_STANDBY);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void pm_constraint_release(enum pm_state state)
|
||||
{
|
||||
switch (state) {
|
||||
case PM_STATE_RUNTIME_IDLE:
|
||||
Power_releaseConstraint(PowerCC26XX_DISALLOW_IDLE);
|
||||
break;
|
||||
case PM_STATE_STANDBY:
|
||||
Power_releaseConstraint(PowerCC26XX_DISALLOW_STANDBY);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool pm_constraint_get(enum pm_state state)
|
||||
{
|
||||
bool ret = true;
|
||||
uint32_t constraints;
|
||||
|
||||
constraints = Power_getConstraintMask();
|
||||
switch (state) {
|
||||
case PM_STATE_RUNTIME_IDLE:
|
||||
ret = (constraints & (1 << PowerCC26XX_DISALLOW_IDLE)) == 0;
|
||||
break;
|
||||
case PM_STATE_STANDBY:
|
||||
ret = (constraints & (1 << PowerCC26XX_DISALLOW_STANDBY)) == 0;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
SYS_INIT(power_initialize, POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT);
|
||||
SYS_INIT(unlatch_pins, POST_KERNEL, CONFIG_APPLICATION_INIT_PRIORITY);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue