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>
69 lines
1.4 KiB
Plaintext
69 lines
1.4 KiB
Plaintext
# DPS310 temperature and pressure sensor configuration options
|
|
|
|
# Copyright (c) 2019 Infineon Technologies AG
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menuconfig DPS310
|
|
bool "DPS310 sensor"
|
|
default y
|
|
depends on DT_HAS_INFINEON_DPS310_ENABLED
|
|
select I2C
|
|
help
|
|
Enable driver for DPS310 I2C-based temperature and pressure sensor.
|
|
|
|
if DPS310
|
|
|
|
menu "Attributes"
|
|
|
|
choice
|
|
prompt "DPS310 temperature oversampling"
|
|
default DPS310_TEMP_OSR_8X
|
|
help
|
|
Select temperature oversampling for the DPS310 sensor. Higher values
|
|
lead to more accurate readings, but higher power consumption.
|
|
config DPS310_TEMP_OSR_1X
|
|
bool "x1"
|
|
config DPS310_TEMP_OSR_2X
|
|
bool "x2"
|
|
config DPS310_TEMP_OSR_4X
|
|
bool "x4"
|
|
config DPS310_TEMP_OSR_8X
|
|
bool "x8"
|
|
config DPS310_TEMP_OSR_16X
|
|
bool "x16"
|
|
config DPS310_TEMP_OSR_32X
|
|
bool "x32"
|
|
config DPS310_TEMP_OSR_64X
|
|
bool "x64"
|
|
config DPS310_TEMP_OSR_128X
|
|
bool "x128"
|
|
endchoice
|
|
|
|
choice
|
|
prompt "DPS310 pressure oversampling"
|
|
default DPS310_PRESS_OSR_8X
|
|
help
|
|
Select pressure oversampling for the DPS310 sensor. Higher values
|
|
lead to more accurate readings, but higher power consumption.
|
|
config DPS310_PRESS_OSR_1X
|
|
bool "x1"
|
|
config DPS310_PRESS_OSR_2X
|
|
bool "x2"
|
|
config DPS310_PRESS_OSR_4X
|
|
bool "x4"
|
|
config DPS310_PRESS_OSR_8X
|
|
bool "x8"
|
|
config DPS310_PRESS_OSR_16X
|
|
bool "x16"
|
|
config DPS310_PRESS_OSR_32X
|
|
bool "x32"
|
|
config DPS310_PRESS_OSR_64X
|
|
bool "x64"
|
|
config DPS310_PRESS_OSR_128X
|
|
bool "x128"
|
|
endchoice
|
|
|
|
endmenu
|
|
|
|
endif # DPS310
|