# Drivers configuration options for SeeedStudio Grove Devices

# Copyright (c) 2015 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

config GROVE_SENSORS
	bool "Seeed Grove sensors support"
	default y
	depends on DT_HAS_SEEED_GROVE_LIGHT_ENABLED || DT_HAS_SEEED_GROVE_TEMPERATURE_ENABLED
	help
	  Enable Seeed Grove sensors support.

if GROVE_SENSORS

config GROVE_LIGHT_SENSOR
	bool "The Seeed Grove Light Sensor"
	default y
	depends on DT_HAS_SEEED_GROVE_LIGHT_ENABLED
	depends on ADC && !MINIMAL_LIBC
	help
	  Setting this value will enable driver support for the Grove Light
	  Sensor.

config GROVE_TEMPERATURE_SENSOR
	bool "The Seeed Grove Temperature Sensor"
	default y
	depends on DT_HAS_SEEED_GROVE_TEMPERATURE_ENABLED
	depends on ADC && !MINIMAL_LIBC
	help
	  Setting this value will enable driver support for the Grove
	  Temperature Sensor.

endif # GROVE_SENSORS
