# ISL29035 light sensor configuration options

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

menuconfig ISL29035
	bool "ISL29035 light sensor"
	depends on I2C
	help
	  Enable driver for the ISL29035 light sensor.

if ISL29035

config ISL29035_THREAD_PRIORITY
	int "Thread priority"
	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
	help
	  Maximum allowable lux value. Lower range values offer better
	  resolution.

config ISL29035_LUX_RANGE_1K
	bool "1000"

config ISL29035_LUX_RANGE_4K
	bool "4000"

config ISL29035_LUX_RANGE_16K
	bool "16000"

config ISL29035_LUX_RANGE_64K
	bool "64000"

endchoice

choice
	prompt "Integration time"
	default ISL29035_INTEGRATION_TIME_105K
	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 "0.0256 ms"

config ISL29035_INTEGRATION_TIME_410
	bool "0.41 ms"

config ISL29035_INTEGRATION_TIME_6500
	bool "6.5 ms"

config ISL29035_INTEGRATION_TIME_105K
	bool "105 ms"

endchoice

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

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

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

endchoice

choice
	prompt "Trigger mode"
	depends on 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 "No trigger"

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

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

endchoice

config ISL29035_TRIGGER
	bool

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

config ISL29035_THREAD_STACK_SIZE
	int "Thread stack size"
	depends on 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_TRIGGER
	default ISL29035_INT_PERSIST_1
	help
	  Number of consecutive integration 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 "1"

config ISL29035_INT_PERSIST_4
	bool "4"

config ISL29035_INT_PERSIST_8
	bool "8"

config ISL29035_INT_PERSIST_16
	bool "16"

endchoice

endif # ISL29035
