df81fef944
This change in pattern is meant to address a misconfiguration issue that can occur for sensors that support being on multiple busses like I2C & SPI. For example, you can have a configuration in which such a sensor is on the I2C bus in the devicetree and the sensor is enabled. However the application configuration enables CONFIG_SPI=y and CONFIG_I2C=n and this will cause the sensor driver to be built by default, however since we don't have the I2C bus enabled the driver will not compile correctly. Previously we had been adding to board Kconfig.defconfig something like: config I2C default y if SENSOR This pattern doesn't scale well and may differ from what an application specific need/use is. So instead move to a pattern in which we leave the default enablement up to the devicetree "status" property for the sensor. We then have the Kconfig move from 'depends on <BUS>' to 'select <BUS>' and in the case of drivers that support multiple busses we have the Kconfig be: 'select <BUS> if $(dt_compat_on_bus,$(<DT_COMPAT>),<BUS>) for each bus type the sensor supports. This removes the need to add Kconfig logic to each board and enables the bus subsystem and bus controller driver if the sensor requires it by default in the build system. Fixes: #48518 Signed-off-by: Kumar Gala <galak@kernel.org>
147 lines
2.9 KiB
Plaintext
147 lines
2.9 KiB
Plaintext
# 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
|
|
select 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
|