# 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

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
