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>
56 lines
1.1 KiB
Plaintext
56 lines
1.1 KiB
Plaintext
# SX9500 SAR proximity sensor configuration options
|
|
|
|
# Copyright (c) 2016 Intel Corporation
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menuconfig SX9500
|
|
bool "SX9500 I2C SAR Proximity Chip"
|
|
default y
|
|
depends on DT_HAS_SEMTECH_SX9500_ENABLED
|
|
select I2C
|
|
help
|
|
Enable driver for SX9500 I2C-based SAR proximity sensor.
|
|
|
|
if SX9500
|
|
|
|
config SX9500_PROX_CHANNEL
|
|
int "Proximity channel to use"
|
|
default 3
|
|
help
|
|
The SX9500 offers 4 separate proximity channels. Choose which one
|
|
you are using. Valid numbers are 0 to 3.
|
|
|
|
choice
|
|
prompt "SX9500 trigger mode"
|
|
default SX9500_TRIGGER_GLOBAL_THREAD
|
|
|
|
config SX9500_TRIGGER_NONE
|
|
bool "No trigger"
|
|
|
|
config SX9500_TRIGGER_GLOBAL_THREAD
|
|
depends on GPIO
|
|
select SX9500_TRIGGER
|
|
bool "Use global thread"
|
|
|
|
config SX9500_TRIGGER_OWN_THREAD
|
|
depends on GPIO
|
|
select SX9500_TRIGGER
|
|
bool "Use own thread"
|
|
|
|
endchoice
|
|
|
|
config SX9500_TRIGGER
|
|
bool
|
|
|
|
config SX9500_THREAD_STACK_SIZE
|
|
int "Sensor delayed work thread stack size"
|
|
depends on SX9500_TRIGGER_OWN_THREAD
|
|
default 1024
|
|
|
|
config SX9500_THREAD_PRIORITY
|
|
int "Thread priority"
|
|
depends on SX9500_TRIGGER_OWN_THREAD
|
|
default 10
|
|
|
|
endif # SX9500
|