# Copyright (c) 2020 Linumiz
#
# SPDX-License-Identifier: Apache-2.0

menuconfig BQ274XX
	bool "BQ274xx Fuel Gauge"
	default y
	depends on DT_HAS_TI_BQ274XX_ENABLED
	select I2C
	help
	  Enable I2C-based driver for BQ274xx Fuel Gauge.

if BQ274XX

config BQ274XX_PM
	bool "BQ274XX Power Management"
	depends on PM_DEVICE
	default y
	help
	  This option enables the device power management feature of the
	  BQ274XX.
	  Note: if the int_gpios pin is not used then this feature must be
	  disabled.

choice BQ274XX_TRIGGER_MODE
	prompt "Trigger mode"
	default BQ274XX_TRIGGER_NONE
	help
	  Specify the type of triggering to be used by the driver.

config BQ274XX_TRIGGER_NONE
	bool "No trigger"

config BQ274XX_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	select BQ274XX_TRIGGER

config BQ274XX_TRIGGER_OWN_THREAD
	bool "Use own thread"
	select BQ274XX_TRIGGER

endchoice # BQ274XX_TRIGGER_MODE

config BQ274XX_TRIGGER
	bool

config BQ274XX_THREAD_PRIORITY
	int "Thread priority"
	depends on BQ274XX_TRIGGER_OWN_THREAD
	default 10
	help
	  Priority of thread used by the driver to handle interrupts.

config BQ274XX_THREAD_STACK_SIZE
	int "Thread stack size"
	depends on BQ274XX_TRIGGER_OWN_THREAD
	default 1024
	help
	  Stack size of thread used by the driver to handle interrupts.

endif # BQ274XX
