Boot Linux faster!

Check our new training course

Boot Linux faster!

Check our new training course
and Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

# Kconfig.isl29035 - ISL29035 light sensor configuration options

#
# Copyright (c) 2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

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

config ISL29035_SYS_LOG_LEVEL
	int "ISL29035 Log level"
	depends on SYS_LOG && ISL29035
	default 0
	range 0 4
	help
	Sets log level for ISL29035 driver.
	Levels are:

	- 0 OFF: do not write

	- 1 ERROR: only write SYS_LOG_ERR

	- 2 WARNING: write SYS_LOG_WRN in addition to previous level

	- 3 INFO: write SYS_LOG_INF in addition to previous levels

	- 4 DEBUG: write SYS_LOG_DBG in addition to previous levels

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

config ISL29035_INIT_PRIORITY
	int
	prompt "Init priority"
	default 70
	depends on ISL29035
	help
	  Device driver initialization priority for ISL29035.
	  The device should be initialized after I2C.

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_FIBER_PRIORITY
	int
	prompt "Fiber priority"
	depends on ISL29035
	default 10
	help
	  Priority of fiber 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_FIBER
	bool
	prompt "Use global fiber"
	depends on GPIO && SYSTEM_WORKQUEUE
	select ISL29035_TRIGGER

config ISL29035_TRIGGER_OWN_FIBER
	bool
	prompt "Use own fiber"
	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_FIBER_PRIORITY
	int
	prompt "Fiber priority"
	depends on ISL29035 && ISL29035_TRIGGER_OWN_FIBER
	default 10
	help
	  Priority of fiber used by the driver to handle interrupts.

config ISL29035_FIBER_STACK_SIZE
	int
	prompt "Fiber stack size"
	depends on ISL29035 && ISL29035_TRIGGER_OWN_FIBER
	default 1024
	help
	  Stack size of fiber 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