# Kconfig - ISL29035 light sensor configuration options

#
# Copyright (c) 2016 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig ISL29035
	bool
	prompt "ISL29035 light sensor"
	default n
	depends on SENSOR && I2C
	help
	  Enable driver for the ISL29035 light sensor.

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

config ISL29035_I2C_MASTER_DEV_NAME
	string
	prompt "I2C Master"
	depends on ISL29035
	default "I2C_0"
	help
	  The device name of the I2C master device to which the ISL29035
	  chip is connected.

config ISL29035_THREAD_PRIORITY
	int
	prompt "Thread priority"
	depends on ISL29035
	default 10
	help
	  Priority of thread used to handle the timer and threshold triggers.

choice
	prompt "Full scale lux range"
	default ISL29035_LUX_RANGE_1K
	depends on ISL29035
	help
	  Maximum allowable lux value. Lower range values offer better
	  resolution.

config ISL29035_LUX_RANGE_1K
	bool
	prompt "1000"

config ISL29035_LUX_RANGE_4K
	bool
	prompt "4000"

config ISL29035_LUX_RANGE_16K
	bool
	prompt "16000"

config ISL29035_LUX_RANGE_64K
	bool
	prompt "64000"

endchoice

choice
	prompt "Integration time"
	default ISL29035_INTEGRATION_TIME_105K
	depends on ISL29035
	help
	  The sampling period of the internal ADC of the light sensor.
	  Lower integration time values mean lower ADC resolution.

config ISL29035_INTEGRATION_TIME_26
	bool
	prompt "0.0256 ms"

config ISL29035_INTEGRATION_TIME_410
	bool
	prompt "0.41 ms"

config ISL29035_INTEGRATION_TIME_6500
	bool
	prompt "6.5 ms"

config ISL29035_INTEGRATION_TIME_105K
	bool
	prompt "105 ms"

endchoice

choice
	prompt "Active sensing mode"
	depends on ISL29035
	default ISL29035_MODE_ALS
	help
	  Sensing mode in which the ISL29035 will function. The chip can be
	  configured either for either ambinet light or infrared sensing.

config ISL29035_MODE_ALS
	bool
	prompt "ambient light"
	help
	  Sensing mode for ambient light spectrum.

config ISL29035_MODE_IR
	bool
	prompt "infrared"
	help
	  Sensing mode for infrared spectrum.

endchoice

choice
	prompt "Trigger mode"
	depends on ISL29035 && ISL29035_MODE_ALS && GPIO
	default ISL29035_TRIGGER_NONE
	help
	  Specify the type of triggering to be used by the driver.
	  Only available for ambient light sensing mode.

config ISL29035_TRIGGER_NONE
	bool
	prompt "No trigger"

config ISL29035_TRIGGER_GLOBAL_THREAD
	bool
	prompt "Use global thread"
	depends on GPIO
	select ISL29035_TRIGGER

config ISL29035_TRIGGER_OWN_THREAD
	bool
	prompt "Use own thread"
	depends on GPIO
	select ISL29035_TRIGGER

endchoice

config ISL29035_TRIGGER
	bool
	depends on ISL29035

config ISL29035_GPIO_DEV_NAME
	string
	prompt "GPIO device"
	default "GPIO_0"
	depends on ISL29035 && ISL29035_TRIGGER
	help
	  The device name of the GPIO device to which the ISL29035 interrupt
	  pin is connected.

config ISL29035_GPIO_PIN_NUM
	int
	prompt "GPIO pin number"
	default 0
	depends on ISL29035 && ISL29035_TRIGGER
	help
	  The number of the GPIO pin to which the ISL29035 interrupt pin is
	  connected.

config ISL29035_THREAD_PRIORITY
	int
	prompt "Thread priority"
	depends on ISL29035 && ISL29035_TRIGGER_OWN_THREAD
	default 10
	help
	  Priority of thread used by the driver to handle interrupts.

config ISL29035_THREAD_STACK_SIZE
	int
	prompt "Thread stack size"
	depends on ISL29035 && ISL29035_TRIGGER_OWN_THREAD
	default 1024
	help
	  Stack size of thread used by the driver to handle interrupts.

choice
	prompt "Interrupt persist cycles"
	depends on ISL29035 && ISL29035_TRIGGER
	default ISL29035_INT_PERSIST_1
	help
	  Number of consecutive intergration cycles for which the data samples
	  need to remain outside the threshold window in order for the interrupt
	  to be triggered.

config ISL29035_INT_PERSIST_1
	bool
	prompt "1"

config ISL29035_INT_PERSIST_4
	bool
	prompt "4"

config ISL29035_INT_PERSIST_8
	bool
	prompt "8"

config ISL29035_INT_PERSIST_16
	bool
	prompt "16"

endchoice
