# Kconfig - CCS811 Digital Gas sensor configuration options

#
# Copyright (c) 2018 Linaro Ltd.
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig CCS811
	bool
	prompt "CCS811 Digital Gas Sensor"
	depends on I2C
	default n
	help
	  Enable driver for CCS811 Gas sensors.

if !HAS_DTS_I2C_DEVICE

config CCS811_NAME
	string
	prompt "Driver name"
	default "CCS811"
	depends on CCS811
	help
	  Device name with which the CCS811 sensor is identified.

config CCS811_I2C_ADDR
	hex
	prompt "I2C address for CCS811 Sensor"
	depends on CCS811
	range 0x5a 0x5b
	default "0x5b"
	help
	  I2C address of the CCS811 sensor.
	  0x5a: I2C_ADDR connected to GND.
	  0x5b: I2C_ADDR connected to VDD.

config CCS811_I2C_MASTER_DEV_NAME
	string
	prompt "I2C master where CCS811 is connected"
	depends on CCS811
	default "I2C_1"
	help
	  Specify the device name of the I2C master device to which the
	  CCS811 chip is connected.

endif

config CCS811_GPIO_DEV_NAME
	string
	prompt "GPIO device"
	default "GPIOC"
	depends on CCS811
	help
	  The device name of the GPIO device to which the CCS811 WAKE
	  pin is connected.

config CCS811_GPIO_WAKEUP
	bool
	prompt "Enable GPIO Wakeup for CCS811"
	default n
	depends on CCS811
	help
	  Enable GPIO Wakeup support for CCS811

config CCS811_GPIO_WAKEUP_PIN_NUM
	int
	prompt "GPIO Wakeup pin number"
	default 0
	depends on CCS811 && CCS811_GPIO_WAKEUP
	help
	  The number of the GPIO pin on which the WAKE pin of CCS811
	  is connected

config CCS811_GPIO_RESET
	bool
	prompt "Enable GPIO Reset for CCS811"
	default n
	depends on CCS811
	help
	  Enable GPIO Reset support for CCS811

config CCS811_GPIO_RESET_PIN_NUM
	int
	prompt "GPIO Reset pin number"
	default 0
	depends on CCS811 && CCS811_GPIO_RESET
	help
	  The number of the GPIO pin on which the RESET pin of CCS811
	  is connected
