5ce181e6b7
For mult domains scene,, activity and greety can be used at same time. Let user to select domain governor. Signed-off-by: zhuyanlin <zhuyanlin1@xiaomi.com>
512 lines
14 KiB
Plaintext
512 lines
14 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
#
|
|
|
|
menuconfig PM
|
|
bool "Power management (PM) system"
|
|
default n
|
|
---help---
|
|
Power management (PM) system. It consists of an OS interface
|
|
to board logic which can be used to obtain a recommended
|
|
power level according to a power management policy set by the
|
|
currently chosen PM governor. It is also used by drivers which
|
|
can allow or not a power level to be changed or not.
|
|
|
|
if PM
|
|
|
|
config PM_NDOMAINS
|
|
int "Number of PM activity domains"
|
|
default 1
|
|
---help---
|
|
Defines the number of "domains" that the PM system can control.
|
|
For example, you may want to separately manage the power from the
|
|
Network domain, shutting down the network when it is not be used,
|
|
from the UI domain, shutting down the UI when it is not in use.
|
|
|
|
config PM_GOVERNOR_GREEDY
|
|
bool "Greedy governor"
|
|
---help---
|
|
This governor simply suggests the lowest-possible power state,
|
|
considering any states locked by calls to pm_stay() (accessible
|
|
via BOARDIOC_PM_STAY boardctl calls).
|
|
|
|
config PM_GOVERNOR_ACTIVITY
|
|
bool "Activity based"
|
|
---help---
|
|
The activity based governor receives activity reports from drivers
|
|
in units which are accumulated during a certain time slice interval.
|
|
The governor will then switch between power states given a set of
|
|
activity thresholds for each state.
|
|
|
|
menu "Governor options"
|
|
|
|
if PM_GOVERNOR_GREEDY
|
|
|
|
config PM_GOVERNOR_EXPLICIT_RELAX
|
|
bool "Stay initially at PM_NORMAL"
|
|
---help---
|
|
If you boot into NSH, when using the greedy PM governor, since NuttX will
|
|
almost immediately go idle (when waiting for a prompt), he lowest possible
|
|
run-level will be selected, which may not be desirable.
|
|
This is not a problem if you directly run you application at boot, which
|
|
can hold off power levels using pm_stay() (via boardctl).
|
|
|
|
This option will initialize all run levels as if pm_stay() were to be
|
|
called once for each, so that your application needs to call pm_relax()
|
|
(via boardctl()) for every run-level you wish to allow to enter.
|
|
|
|
endif
|
|
|
|
if PM_GOVERNOR_ACTIVITY
|
|
|
|
config PM_GOVERNOR_SLICEMS
|
|
int "PM time slice (msec)"
|
|
default 100
|
|
---help---
|
|
The power management module collects activity counts in time slices.
|
|
At the end of the time slice, the count accumulated during that
|
|
interval is applied to an averaging algorithm to determine the
|
|
activity level.
|
|
|
|
CONFIG_PM_GOVERNOR_SLICEMS provides the duration of that time slice in
|
|
milliseconds. Default: 100 Milliseconds
|
|
|
|
config PM_GOVERNOR_MEMORY
|
|
int "PM memory (msec)"
|
|
default 2
|
|
range 1 6
|
|
---help---
|
|
The averaging algorithm is simply: Y = (An*X + SUM(Ai*Yi))/SUM(Aj),
|
|
where i = 1..n-1 and j= 1..n, n is the length of the "memory",
|
|
Ai is the weight applied to each value, and X is the current
|
|
activity. These weights may be negative and a limited to the
|
|
range of int16_t.
|
|
|
|
CONFIG_PM_GOVERNOR_MEMORY provides the memory for the algorithm.
|
|
Default: 2
|
|
CONFIG_PM_GOVERNOR_COEFn provides weight for each sample. Default: 1
|
|
|
|
Setting CONFIG_PM_GOVERNOR_MEMORY=1 disables all smoothing.
|
|
|
|
config PM_GOVERNOR_COEFN
|
|
int "PM coefficient"
|
|
default 1
|
|
---help---
|
|
See help associated with CONFIG_PM_GOVERNOR_MEMORY.
|
|
|
|
config PM_GOVERNOR_COEF1
|
|
int "PM coefficient 1"
|
|
default 1
|
|
---help---
|
|
See help associated with CONFIG_PM_GOVERNOR_MEMORY.
|
|
|
|
config PM_GOVERNOR_COEF2
|
|
int "PM coefficient 2"
|
|
default 1
|
|
---help---
|
|
See help associated with CONFIG_PM_GOVERNOR_MEMORY
|
|
|
|
Ignored if CONFIG_PM_GOVERNOR_MEMORY <= 2
|
|
|
|
config PM_GOVERNOR_COEF3
|
|
int "PM coefficient 3"
|
|
default 1
|
|
---help---
|
|
See help associated with CONFIG_PM_GOVERNOR_MEMORY
|
|
|
|
Ignored if CONFIG_PM_GOVERNOR_MEMORY <= 3
|
|
|
|
config PM_GOVERNOR_COEF4
|
|
int "PM coefficient 4"
|
|
default 1
|
|
---help---
|
|
See help associated with CONFIG_PM_GOVERNOR_MEMORY
|
|
|
|
Ignored if CONFIG_PM_GOVERNOR_MEMORY <= 4
|
|
|
|
config PM_GOVERNOR_COEF5
|
|
int "PM coefficient 5"
|
|
default 1
|
|
---help---
|
|
See help associated with CONFIG_PM_GOVERNOR_MEMORY
|
|
|
|
Ignored if CONFIG_PM_GOVERNOR_MEMORY <= 5
|
|
|
|
config PM_GOVERNOR_IDLEENTER_THRESH
|
|
int "PM IDLE enter threshold"
|
|
default 1
|
|
---help---
|
|
State changes then occur when the weight activity account crosses
|
|
threshold values for certain periods of time (time slice count).
|
|
|
|
CONFIG_PM_xxxENTER_THRESH is the threshold value for entering state xxx.
|
|
CONFIG_PM_xxxENTER_COUNT is the count for entering state xxx.
|
|
|
|
Resuming to normal state, on the other hand, is usually immediate and
|
|
controlled by wakeup conditions established by the platform.
|
|
|
|
Default: <=1: Essentially no activity
|
|
|
|
config PM_GOVERNOR_IDLEEXIT_THRESH
|
|
int "PM IDLE exit threshold"
|
|
default 2
|
|
---help---
|
|
State changes then occur when the weight activity account crosses
|
|
threshold values for certain periods of time (time slice count).
|
|
|
|
CONFIG_PM_xxxENTER_THRESH is the threshold value for entering state xxx.
|
|
CONFIG_PM_xxxENTER_COUNT is the count for entering state xxx.
|
|
|
|
Resuming to normal state, on the other hand, is usually immediate and
|
|
controlled by wakeup conditions established by the platform.
|
|
|
|
Default: >=2: Active
|
|
|
|
config PM_GOVERNOR_IDLEENTER_COUNT
|
|
int "PM IDLE enter count"
|
|
default 30
|
|
---help---
|
|
State changes then occur when the weight activity account crosses
|
|
threshold values for certain periods of time (time slice count).
|
|
|
|
CONFIG_PM_xxxENTER_THRESH is the threshold value for entering state xxx.
|
|
CONFIG_PM_xxxENTER_COUNT is the count for entering state xxx.
|
|
|
|
Resuming to normal state, on the other hand, is usually immediate and
|
|
controlled by wakeup conditions established by the platform.
|
|
|
|
Default: Thirty IDLE slices to enter IDLE mode from normal
|
|
|
|
config PM_GOVERNOR_STANDBYENTER_THRESH
|
|
int "PM STANDBY enter threshold"
|
|
default 1
|
|
---help---
|
|
State changes then occur when the weight activity account crosses
|
|
threshold values for certain periods of time (time slice count).
|
|
|
|
CONFIG_PM_xxxENTER_THRESH is the threshold value for entering state xxx.
|
|
CONFIG_PM_xxxENTER_COUNT is the count for entering state xxx.
|
|
|
|
Resuming to normal state, on the other hand, is usually immediate and
|
|
controlled by wakeup conditions established by the platform.
|
|
|
|
Default: <=1: Essentially no activity
|
|
|
|
config PM_GOVERNOR_STANDBYEXIT_THRESH
|
|
int "PM STANDBY exit threshold"
|
|
default 2
|
|
---help---
|
|
State changes then occur when the weight activity account crosses
|
|
threshold values for certain periods of time (time slice count).
|
|
|
|
CONFIG_PM_xxxENTER_THRESH is the threshold value for entering state xxx.
|
|
CONFIG_PM_xxxENTER_COUNT is the count for entering state xxx.
|
|
|
|
Resuming to normal state, on the other hand, is usually immediate and
|
|
controlled by wakeup conditions established by the platform.
|
|
|
|
Default: >=2: Active
|
|
|
|
config PM_GOVERNOR_STANDBYENTER_COUNT
|
|
int "PM STANDBY enter count"
|
|
default 50
|
|
---help---
|
|
State changes then occur when the weight activity account crosses
|
|
threshold values for certain periods of time (time slice count).
|
|
|
|
CONFIG_PM_xxxENTER_THRESH is the threshold value for entering state xxx.
|
|
CONFIG_PM_xxxENTER_COUNT is the count for entering state xxx.
|
|
|
|
Resuming to normal state, on the other hand, is usually immediate and
|
|
controlled by wakeup conditions established by the platform.
|
|
|
|
Default: Fifty IDLE slices to enter STANDBY mode from IDLE
|
|
|
|
config PM_GOVERNOR_SLEEPENTER_THRESH
|
|
int "PM SLEEP enter threshold"
|
|
default 1
|
|
---help---
|
|
State changes then occur when the weight activity account crosses
|
|
threshold values for certain periods of time (time slice count).
|
|
|
|
CONFIG_PM_xxxENTER_THRESH is the threshold value for entering state xxx.
|
|
CONFIG_PM_xxxENTER_COUNT is the count for entering state xxx.
|
|
|
|
Resuming to normal state, on the other hand, is usually immediate and
|
|
controlled by wakeup conditions established by the platform.
|
|
|
|
Default: <=1: Essentially no activity
|
|
|
|
config PM_GOVERNOR_SLEEPEXIT_THRESH
|
|
int "PM SLEEP exit threshold"
|
|
default 2
|
|
---help---
|
|
State changes then occur when the weight activity account crosses
|
|
threshold values for certain periods of time (time slice count).
|
|
|
|
CONFIG_PM_xxxENTER_THRESH is the threshold value for entering state xxx.
|
|
CONFIG_PM_xxxENTER_COUNT is the count for entering state xxx.
|
|
|
|
Resuming to normal state, on the other hand, is usually immediate and
|
|
controlled by wakeup conditions established by the platform.
|
|
|
|
Default: >=2: Active
|
|
|
|
config PM_GOVERNOR_SLEEPENTER_COUNT
|
|
int "PM SLEEP enter count"
|
|
default 70
|
|
---help---
|
|
State changes then occur when the weight activity account crosses
|
|
threshold values for certain periods of time (time slice count).
|
|
|
|
CONFIG_PM_xxxENTER_THRESH is the threshold value for entering state xxx.
|
|
CONFIG_PM_xxxENTER_COUNT is the count for entering state xxx.
|
|
|
|
Resuming to normal state, on the other hand, is usually immediate and
|
|
controlled by wakeup conditions established by the platform.
|
|
|
|
Default: Fifty IDLE slices to enter SLEEP mode from STANDBY
|
|
|
|
endif # PM_GOVERNOR_ACTIVITY
|
|
|
|
endmenu
|
|
|
|
endif # PM
|
|
|
|
config DRIVERS_POWERLED
|
|
bool "High Power LED driver"
|
|
default n
|
|
---help---
|
|
Enables building of an powerled upper half driver.
|
|
|
|
menuconfig DRIVERS_SMPS
|
|
bool "Switched-Mode Power Supply (SMPS)"
|
|
default n
|
|
---help---
|
|
Enables building of an SMPS upper half driver.
|
|
|
|
if DRIVERS_SMPS
|
|
|
|
config SMPS_HAVE_OUTPUT_VOLTAGE
|
|
bool "Have Output Voltage"
|
|
default n
|
|
|
|
config SMPS_HAVE_OUTPUT_CURRENT
|
|
bool "Have Output Current"
|
|
default n
|
|
|
|
config SMPS_HAVE_OUTPUT_POWER
|
|
bool "Have Output Power"
|
|
default n
|
|
|
|
config SMPS_HAVE_INPUT_VOLTAGE
|
|
bool "Have Input Voltage"
|
|
default n
|
|
|
|
config SMPS_HAVE_INPUT_CURRENT
|
|
bool "Have Input Current"
|
|
default n
|
|
|
|
config SMPS_HAVE_INPUT_POWER
|
|
bool "Have Input Power"
|
|
default n
|
|
|
|
config SMPS_HAVE_EFFICIENCY
|
|
bool "Have Power Efficiency"
|
|
default n
|
|
|
|
endif
|
|
|
|
menuconfig POWER
|
|
bool "Power Management Support"
|
|
default n
|
|
---help---
|
|
Enable building of power-related devices (battery monitors, chargers,
|
|
etc).
|
|
|
|
if POWER
|
|
|
|
config REGULATOR
|
|
bool "Regulator core driver support"
|
|
default n
|
|
---help---
|
|
The regulator core driver implements the uper layer framework that the lower
|
|
layer driver can register with, and the common regulator APIs that are easy
|
|
for other drivers to call for the control of their power supply.
|
|
|
|
config REGULATOR_RPMSG
|
|
bool "Regulator rpmsg driver support"
|
|
depends on OPENAMP
|
|
default n
|
|
---help---
|
|
The rpmsg regulator driver implements the common regulator APIs, inside which
|
|
the regulator operations are sent from the client to the remote device via
|
|
the rpmsg channel. The remote device(namely server) is responsible for
|
|
the parse and the completion.
|
|
|
|
if REGULATOR
|
|
|
|
config REGULATOR_GPIO
|
|
bool "Regulator gpio driver support"
|
|
default n
|
|
---help---
|
|
The regulator gpio driver implements the lower regulator ops that use gpio to
|
|
control to regulator.
|
|
|
|
endif
|
|
|
|
config BATTERY_CHARGER
|
|
bool "Battery Charger support"
|
|
default n
|
|
|
|
config BQ2425X
|
|
bool "BQ2425X Battery charger support"
|
|
default n
|
|
select I2C
|
|
select I2C_BQ2425X
|
|
depends on BATTERY_CHARGER
|
|
depends on ALLOW_BSD_COMPONENTS
|
|
---help---
|
|
The BQ24250/BQ24251 are battery charger for lithium-ion batteries.
|
|
|
|
config BQ2429X
|
|
bool "BQ2429X Battery charger support"
|
|
default n
|
|
select I2C
|
|
select I2C_BQ2429X
|
|
depends on BATTERY_CHARGER
|
|
---help---
|
|
The BQ24296/BQ24297/BQ24296M are battery charger for lithium-ion batteries.
|
|
|
|
config AXP202
|
|
bool "AXP202 Battery charger support"
|
|
default n
|
|
select I2C
|
|
depends on BATTERY_CHARGER
|
|
---help---
|
|
axp202 are battery charger for lithium-ion batteries.
|
|
|
|
config AXP202_DC2_VOLTAGE
|
|
int "AXP202 DC2 output voltage"
|
|
default 0
|
|
depends on AXP202
|
|
---help---
|
|
AXP202 DC2 output voltage. 0 is disable, enable range: [700, 2275] mV.
|
|
|
|
config AXP202_DC3_VOLTAGE
|
|
int "AXP202 DC3 output voltage"
|
|
default 3300
|
|
depends on AXP202
|
|
---help---
|
|
AXP202 DC3 output voltage. 0 is disable, enable range: [700, 3500] mV.
|
|
|
|
config AXP202_LDO2_VOLTAGE
|
|
int "AXP202 LDO2 output voltage"
|
|
default 0
|
|
depends on AXP202
|
|
---help---
|
|
AXP202 LDO2 output voltage. 0 is disable, enable range: [1800, 3300] mV.
|
|
|
|
config AXP202_LDO3_VOLTAGE
|
|
int "AXP202 LDO3 output voltage"
|
|
default 0
|
|
depends on AXP202
|
|
---help---
|
|
Enable LDO3 output voltage. 0 is disable, enable range: [700, 2275] mV.
|
|
|
|
config AXP202_LDO4_VOLTAGE
|
|
int "AXP202 LDO4 output voltage"
|
|
default 0
|
|
depends on AXP202
|
|
---help---
|
|
Enable LDO4 output voltage. 0 is disable, other value:
|
|
1250 1300 1400 1500 1600 1700 1800 1900
|
|
2000 2500 2700 2800 3000 3100 3200 3300 mV.
|
|
|
|
config MCP73871
|
|
bool "Microchip MCP73871 Battery charger support"
|
|
default n
|
|
depends on BATTERY_CHARGER
|
|
---help---
|
|
A simple driver to report MCP73871 status.
|
|
|
|
if BQ2429X
|
|
|
|
config DEBUG_BQ2429X
|
|
bool "BQ2429X Debug Features"
|
|
default n
|
|
---help---
|
|
Enable BQ2429X battery management debug features.
|
|
|
|
endif # BQ2429X
|
|
|
|
config BATTERY_GAUGE
|
|
bool "Battery Fuel Gauge support"
|
|
default n
|
|
|
|
config MAX1704X
|
|
bool "MAX1704X Battery fuel gauge support"
|
|
default n
|
|
select I2C
|
|
select I2C_MAX1704X
|
|
depends on BATTERY_GAUGE
|
|
---help---
|
|
The MAX17040/MAX17041 are ultra-compact, low-cost, host-side fuel-gauge
|
|
systems for lithium-ion (Li+) batteries in handheld and portable equipment.
|
|
The MAX17040 is configured to operate with a single lithium cell and the
|
|
MAX17041 is configured for a dual-cell 2S pack.
|
|
|
|
config BQ27426
|
|
bool "BQ27426 Battery fuel gauge support"
|
|
default n
|
|
select I2C
|
|
depends on BATTERY_GAUGE
|
|
---help---
|
|
The bq27426 battery fuel gauge accurately predicts the battery capacity and other
|
|
operational characteristics of a single, Li-based, rechargeable cell.
|
|
It can be interrogated by a system processor to provide cell information,
|
|
such as state-of-charge (SOC).
|
|
|
|
config I2C_BQ2425X
|
|
bool
|
|
default y if BQ2425X
|
|
|
|
config I2C_BQ2429X
|
|
bool
|
|
default y if BQ2429X
|
|
|
|
config I2C_AXP202
|
|
bool
|
|
default y if AXP202
|
|
|
|
config I2C_MAX1704X
|
|
bool
|
|
default y if MAX1704X
|
|
|
|
config BATTERY_MONITOR
|
|
bool "Battery Monitor/Management support"
|
|
default n
|
|
|
|
config BQ769X0
|
|
bool "BQ769X0 Battery monitor support"
|
|
default n
|
|
select I2C
|
|
select I2C_BQ769X0
|
|
depends on BATTERY_MONITOR
|
|
---help---
|
|
The BQ76920/BQ76930/BQ76940 provide monitoring, balancing, and
|
|
protection features for up to 15 cells in series.
|
|
|
|
config I2C_BQ769X0
|
|
bool
|
|
default y if BQ769X0
|
|
|
|
if BQ769X0
|
|
config BQ769X0_USE_INTERNAL_TS
|
|
bool "Use internal temperature sensor on BQ769X0"
|
|
default n
|
|
endif
|
|
|
|
endif # POWER
|