# Kconfig.bmp280 - BMP280 temperature and pressure sensor configuration options

#
# Copyright (c) 2016 Intel Corporation
# Copyright (c) 2017 IpTronix S.r.l.
#
# SPDX-License-Identifier: Apache-2.0
#
menuconfig BME280
	bool "BME280/BMP280 sensor"
	depends on SENSOR && (I2C || SPI)
	default n
	help
	 Enable driver for BME280 I2C-based or SPI-based temperature and pressure sensor.

config BME280_DEV_NAME
	string "BME280 device name"
	depends on BME280
	default "BME280"

choice
	prompt "BME280 device select"
	depends on BME280
	default BME280_DEV_TYPE_I2C
	help
	  Select interface to communicate with BME280 sensor. This sensor can communicate
	  with both SPI and I2C. I2C is the default, select SPI if you sensor is connected
	  via the SPI interface.

config BME280_DEV_TYPE_SPI
	depends on SPI
	bool "SPI"
config BME280_DEV_TYPE_I2C
	depends on I2C
	bool "I2C"
endchoice

config BME280_I2C_ADDR
	hex "BME280 I2C slave address"
	default 0x76
	depends on BME280 && BME280_DEV_TYPE_I2C
	help
	  Specify the I2C slave address for the BME280.

	  0x76: Ground
	  0x77: VCC

config BME280_I2C_MASTER_DEV_NAME
	string "I2C master where BME280 is connected"
	depends on BME280 && BME280_DEV_TYPE_I2C
	default "I2C_0"
	help
	 Specify the device name of the I2C master device to which BME280 is
	 connected.

config BME280_SPI_DEV_NAME
	string "SPI device where BME280 is connected"
	depends on BME280 && BME280_DEV_TYPE_SPI
	default "SPI_0"
	help
	 Specify the device name of the SPI device to which BME280 is
	 connected.

config BME280_SPI_DEV_SLAVE
	int "SPI Slave Select where BME280 is connected"
	depends on BME280 && BME280_DEV_TYPE_SPI
	default 3
	help
	 Specify the Slave Select pin of the SPI device to which BME280 CS is
	 connected.

menu "Attributes"
	depends on BME280

choice
	prompt "BME280 temperature oversampling"
	depends on BME280
	default BME280_TEMP_OVER_2X
	help
	  Select temperature oversampling for the BME280 sensor.  Higher values
	  lead to more accurate readings, but higher power consumption.
config BME280_TEMP_OVER_1X
	bool "x1"
config BME280_TEMP_OVER_2X
	bool "x2"
config BME280_TEMP_OVER_4X
	bool "x4"
config BME280_TEMP_OVER_8X
	bool "x8"
config BME280_TEMP_OVER_16X
	bool "x16"
endchoice

choice
	prompt "BME280 pressure oversampling"
	depends on BME280
	default BME280_PRESS_OVER_16X
	help
	  Select pressure oversampling for the BME280 sensor.  Higher values
	  lead to more accurate readings, but higher power consumption.
config BME280_PRESS_OVER_1X
	bool "x1"
config BME280_PRESS_OVER_2X
	bool "x2"
config BME280_PRESS_OVER_4X
	bool "x4"
config BME280_PRESS_OVER_8X
	bool "x8"
config BME280_PRESS_OVER_16X
	bool "x16"
endchoice

choice
	prompt "BME280 humidity oversampling"
	depends on BME280
	default BME280_HUMIDITY_OVER_16X
	help
	  Select humidity oversampling for the BME280 sensor.  Higher values
	  lead to more accurate readings, but higher power consumption.
config BME280_HUMIDITY_OVER_1X
	bool "x1"
config BME280_HUMIDITY_OVER_2X
	bool "x2"
config BME280_HUMIDITY_OVER_4X
	bool "x4"
config BME280_HUMIDITY_OVER_8X
	bool "x8"
config BME280_HUMIDITY_OVER_16X
	bool "x16"
endchoice

choice
	prompt "BME280 standby time"
	depends on BME280
	default BME280_STANDBY_1000MS
	help
	  Select standby time between measeurements for the BME280 sensor.
	  Higher values lead to lower power consumption.
config BME280_STANDBY_05MS
	bool "0.5ms"
config BME280_STANDBY_62MS
	bool "62.5ms"
config BME280_STANDBY_125MS
	bool "125ms"
config BME280_STANDBY_250MS
	bool "250ms"
config BME280_STANDBY_500MS
	bool "500ms"
config BME280_STANDBY_1000MS
	bool "1000ms"
config BME280_STANDBY_2000MS
	bool "2000ms BMP280 / 10ms BME280"
config BME280_STANDBY_4000MS
	bool "4000ms BMP280 / 20ms BME280"
endchoice

choice
	prompt "BME280 filter coefficient"
	depends on BME280
	default BME280_FILTER_4
	help
	  Select the filter coefficient for the BME280 sensor.
config BME280_FILTER_OFF
	bool "filter off"
config BME280_FILTER_2
	bool "2"
config BME280_FILTER_4
	bool "4"
config BME280_FILTER_8
	bool "8"
config BME280_FILTER_16
	bool "16"
endchoice

endmenu
