# ISL29035 light sensor configuration options

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

menuconfig ISL29035
	bool "ISL29035 light sensor"
	default y
	depends on DT_HAS_ISIL_ISL29035_ENABLED
	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
