# CCS811 Digital Gas sensor configuration options

# Copyright (c) 2018 Linaro Ltd.
# Copyright (c) 2018 Peter Bigot Consulting, LLC
#
# SPDX-License-Identifier: Apache-2.0

menuconfig CCS811
	bool "CCS811 Digital Gas Sensor"
	default y
	depends on DT_HAS_AMS_CCS811_ENABLED
	select I2C
	help
	  Enable driver for CCS811 Gas sensors.

if CCS811

choice CCS811_DRIVE_MODE
	prompt "Measurement drive mode"
	default CCS811_DRIVE_MODE_1
	help
	  Specifies the measurement rate used by the driver.

config CCS811_DRIVE_MODE_0
	bool "Measurements disabled"

config CCS811_DRIVE_MODE_1
	bool "Measurement every second"

config CCS811_DRIVE_MODE_2
	bool "Measurement every ten seconds"

config CCS811_DRIVE_MODE_3
	bool "Measurement every sixty seconds"

config CCS811_DRIVE_MODE_4
	bool "Measurement every 250 milliseconds"

endchoice

config CCS811_TRIGGER
	bool

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

config CCS811_TRIGGER_NONE
	bool "No trigger"

config CCS811_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	depends on GPIO
	select CCS811_TRIGGER

config CCS811_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	select CCS811_TRIGGER

endchoice

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

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

endif # CCS811
