8a2c480a48
- Add MTD progmem support. - NVM USER PAGE IOCTLs support. boards: metro-m4 Add support for: - SmartFS inicialization. - AT24 EEPROM. - GPIO dev support. - BQ27426 gauge inicialization. drives: power - Add BQ27426 fuel gauge support. Testing: - Build check only. Signed-off-by: Leomar Mateus Radke <leomar@falker.com.br>
513 lines
14 KiB
Plaintext
513 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.
|
|
|
|
choice
|
|
prompt "PM system governor"
|
|
default PM_GOVERNOR_ACTIVITY
|
|
---help---
|
|
A PM governor applies a policy to control the change in power
|
|
states.
|
|
|
|
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.
|
|
|
|
config PM_GOVERNOR_CUSTOM
|
|
bool "Custom governor"
|
|
---help---
|
|
By selecting this option, a custom governor can be supplied from
|
|
board-logic.
|
|
|
|
endchoice
|
|
|
|
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
|
|
|
|
config DRIVERS_MOTOR
|
|
bool "Motor driver"
|
|
default n
|
|
---help---
|
|
Enables building of a motor upper half driver.
|
|
|
|
if DRIVERS_MOTOR
|
|
|
|
config MOTOR_HAVE_POSITION
|
|
bool "Have position control"
|
|
default n
|
|
|
|
config MOTOR_HAVE_DIRECTION
|
|
bool "Have direction control"
|
|
default n
|
|
|
|
config MOTOR_HAVE_SPEED
|
|
bool "Have speed control"
|
|
default n
|
|
|
|
config MOTOR_HAVE_TORQUE
|
|
bool "Have torque control (rotary motors)"
|
|
default n
|
|
|
|
config MOTOR_HAVE_FORCE
|
|
bool "Have force control (linear motors)"
|
|
default n
|
|
|
|
config MOTOR_HAVE_ACCELERATION
|
|
bool "Have acceleration control"
|
|
default n
|
|
|
|
config MOTOR_HAVE_DECELERATION
|
|
bool "Have deceleration control"
|
|
default n
|
|
|
|
config MOTOR_HAVE_INPUT_VOLTAGE
|
|
bool "Have input voltage protection"
|
|
default n
|
|
|
|
config MOTOR_HAVE_INPUT_CURRENT
|
|
bool "Have input current protection"
|
|
default n
|
|
|
|
config MOTOR_HAVE_INPUT_POWER
|
|
bool "Have input power protection"
|
|
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 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
|
|
---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 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).
|
|
|
|
if BQ27426
|
|
|
|
config DEBUG_BQ27426
|
|
bool "BQ27426 Debug Features"
|
|
default n
|
|
---help---
|
|
Enable BQ27426 battery management debug features.
|
|
|
|
endif # BQ27426
|
|
|
|
config I2C_BQ2425X
|
|
bool
|
|
default y if BQ2425X
|
|
|
|
config I2C_BQ2429X
|
|
bool
|
|
default y if BQ2429X
|
|
|
|
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 DEBUG_BQ769X0
|
|
bool "BQ769X0 debug features"
|
|
default n
|
|
|
|
config BQ769X0_USE_INTERNAL_TS
|
|
bool "Use internal temperature sensor on BQ769X0"
|
|
default n
|
|
endif
|
|
|
|
endif # POWER
|