# Kconfig - sensor configuration options

#
# Copyright (c) 2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

menuconfig SENSOR
	bool
	prompt "Sensor Drivers"
	default n
	help
	  Include sensor drivers in system config

source "drivers/sensor/Kconfig.bma280"

source "drivers/sensor/Kconfig.bmc150_magn"

source "drivers/sensor/Kconfig.bme280"

source "drivers/sensor/Kconfig.bmg160"

source "drivers/sensor/Kconfig.bmi160"

source "drivers/sensor/Kconfig.dht"

source "drivers/sensor/Kconfig.hdc1008"

source "drivers/sensor/Kconfig.hts221"

source "drivers/sensor/Kconfig.isl29035"

source "drivers/sensor/Kconfig.lis3dh"

source "drivers/sensor/Kconfig.lis3mdl"

source "drivers/sensor/Kconfig.lsm9ds0_gyro"

source "drivers/sensor/Kconfig.lsm9ds0_mfd"

source "drivers/sensor/Kconfig.mcp9808"

source "drivers/sensor/Kconfig.sht3xd"

source "drivers/sensor/Kconfig.sx9500"

source "drivers/sensor/Kconfig.tmp007"
