Skip to content

Commit

Permalink
drivers/tmp00x : Expose to Kconfig
Browse files Browse the repository at this point in the history
Expose configurations to Kconfig
  • Loading branch information
akshaim committed Apr 30, 2020
1 parent 02a68cd commit b566d48
Show file tree
Hide file tree
Showing 3 changed files with 92 additions and 2 deletions.
5 changes: 5 additions & 0 deletions drivers/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,9 @@
menu "Drivers"
rsource "Kconfig.net"
rsource "periph_common/Kconfig"

menu "Sensor Device Drivers"
rsource "tmp00x/Kconfig"
endmenu # Sensor Device Drivers

endmenu # Drivers
23 changes: 21 additions & 2 deletions drivers/include/tmp00x.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,16 +101,35 @@ extern "C"
/**
* @brief Default Address
*
* I2C Address depends on the state of ADR0 and ADR1 Pins
* For more information, please refer to section 7.3.6.2 of TMP007 datasheet (SBOS685B).
* TMP006/TMP007 allows for upto 8 devices on a single bus.
* The address value depends on the state of ADR0 and ADR1
* pins. Default value (0x40) corresponds to ADR0 and ADR1
* pins tied to GND. For more information refer Serial Bus
* Address section in Datasheet.
*/
#ifndef CONFIG_TMP00X_I2C_ADDRESS
#define CONFIG_TMP00X_I2C_ADDRESS (0x40)
#endif

/**
* @brief Default Conversion Time in us
*
* The duration of the analog-to-digital(A/D) conversion is
* determined by the conversion rate bits CR0, CR1 and CR2.
* For more information refer datasheet.
*/
#if IS_ACTIVE(CONFIG_TMP00X_CONVERSION_TIME_0_25s)
#define CONFIG_TMP00X_CONVERSION_TIME (25E4)
#elif IS_ACTIVE(CONFIG_TMP00X_CONVERSION_TIME_0_5s)
#define CONFIG_TMP00X_CONVERSION_TIME (5E5)
#elif IS_ACTIVE(CONFIG_TMP00X_CONVERSION_TIME_1s)
#define CONFIG_TMP00X_CONVERSION_TIME (1E6)
#elif IS_ACTIVE(CONFIG_TMP00X_CONVERSION_TIME_2s)
#define CONFIG_TMP00X_CONVERSION_TIME (2E6)
#elif IS_ACTIVE(CONFIG_TMP00X_CONVERSION_TIME_4s)
#define CONFIG_TMP00X_CONVERSION_TIME (4E6)
#endif

#ifndef CONFIG_TMP00X_CONVERSION_TIME
#define CONFIG_TMP00X_CONVERSION_TIME (1E6)
#endif
Expand Down
66 changes: 66 additions & 0 deletions drivers/tmp00x/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Copyright (c) 2020 Freie Universitaet Berlin
#
# This file is subject to the terms and conditions of the GNU Lesser
# General Public License v2.1. See the file LICENSE in the top level
# directory for more details.
#
menuconfig KCONFIG_MODULE_TMP00X
bool "Configure TMP00X driver"
depends on MODULE_TMP00X
help
Configure the TMP00X driver using Kconfig.

if KCONFIG_MODULE_TMP00X

config TMP00X_I2C_ADDRESS
hex "Default I2C Address"
range 0x40 0x47
default 0x40
help
TMP006/TMP007 allows for upto 8 devices on a single bus.
The address value depends on the state of ADR0 and ADR1
pins. Default value (0x40) corresponds to ADR0 and ADR1
pins tied to GND. For more information refer Serial Bus
Address section in Datasheet.

choice
bool "Conversion time"
default TMP00X_CONVERSION_TIME_1s
help
The duration of the analog-to-digital(A/D) conversion is
determined by the conversion rate bits CR0, CR1 and CR2.
For more information refer datasheet.

config TMP00X_CONVERSION_TIME_0_25s
bool "0.25 s"

config TMP00X_CONVERSION_TIME_0_5s
bool "0.5 s"

config TMP00X_CONVERSION_TIME_1s
bool "1 s"

config TMP00X_CONVERSION_TIME_2s
bool "2 s"

config TMP00X_CONVERSION_TIME_4s
bool "4 s"

endchoice

config TMP00X_USE_LOW_POWER
bool "Enable low power mode"
help
Enable this to put the device in low power mode
between measurements. By default the device will
always be on. Enabling this also adds a delay
based on "Conversion time" to each measurement
call for bringing the device out of standby.

config TMP00X_USE_RAW_VALUES
bool "Enable raw ADC readings"
help
Enable this to return raw ADC readings.
By default measurements are converted to Celsius.

endif # KCONFIG_MODULE_TMP00X

0 comments on commit b566d48

Please sign in to comment.