# SPDX-License-Identifier: Apache-2.0

choice
	prompt "Idle State Power Management Policy"
	help
	  Select the idle state power management policy.

config SYS_PM_POLICY_RESIDENCY
	bool "PM Policy based on CPU residency"
	select SYS_PM_POLICY_RESIDENCY_DEFAULT if !SOC_SERIES_CC13X2_CC26X2
	select SYS_PM_POLICY_RESIDENCY_CC13X2_CC26X2 if SOC_SERIES_CC13X2_CC26X2
	help
	  Select this option for PM policy based on CPU residencies.

config SYS_PM_POLICY_DUMMY
	bool "Dummy PM Policy"
	help
	  Dummy PM Policy which simply returns next PM state in a loop.

config SYS_PM_POLICY_APP
	bool "Application PM Policy"
	help
	  When this option is selected, the application must provide PM policy.

endchoice

config SYS_PM_POLICY_RESIDENCY_DEFAULT
	bool
	help
	  Use the default residency policy implementation

config SYS_PM_POLICY_RESIDENCY_CC13X2_CC26X2
	bool
	help
	  Use the residency policy implementation for TI CC13x2/CC26x2

if SYS_PM_POLICY_RESIDENCY

config SYS_PM_MIN_RESIDENCY_SLEEP_1
	int "Sleep State 1 minimum residency"
	depends on HAS_SYS_POWER_STATE_SLEEP_1
	default 5000
	help
	  Minimum residency in milliseconds to enter SYS_POWER_STATE_SLEEP_1
	  state.

config SYS_PM_MIN_RESIDENCY_SLEEP_2
	int "Sleep State 2 minimum residency"
	depends on HAS_SYS_POWER_STATE_SLEEP_2
	default 10000
	help
	  Minimum residency in milliseconds to enter SYS_POWER_STATE_SLEEP_2
	  state.

config SYS_PM_MIN_RESIDENCY_SLEEP_3
	int "Sleep State 3 minimum residency"
	depends on HAS_SYS_POWER_STATE_SLEEP_3
	default 30000
	help
	  Minimum residency in milliseconds to enter SYS_POWER_STATE_SLEEP_3
	  state.

config SYS_PM_MIN_RESIDENCY_DEEP_SLEEP_1
	int "Deep Sleep State 1 minimum residency"
	depends on HAS_SYS_POWER_STATE_DEEP_SLEEP_1
	default 60000
	help
	  Minimum residency in milliseconds to enter SYS_POWER_STATE_DEEP_SLEEP_1
	  state.

config SYS_PM_MIN_RESIDENCY_DEEP_SLEEP_2
	int "Deep Sleep State 2 minimum residency"
	depends on HAS_SYS_POWER_STATE_DEEP_SLEEP_2
	default 90000
	help
	  Minimum residency in milliseconds to enter SYS_POWER_STATE_DEEP_SLEEP_2
	  state.

config SYS_PM_MIN_RESIDENCY_DEEP_SLEEP_3
	int "Deep Sleep State 3 minimum residency"
	depends on HAS_SYS_POWER_STATE_DEEP_SLEEP_3
	default 120000
	help
	  Minimum residency in milliseconds to enter SYS_POWER_STATE_DEEP_SLEEP_3
	  state.

endif # SYS_PM_POLICY_RESIDENCY
