# 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 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 ambient 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 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
	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
