# Kconfig - drivers configuration options for SeeedStudio Grove Devices

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

config GROVE_LIGHT_SENSOR
	bool "Enable the Seeed Grove Light Sensor"
	depends on ADC && NEWLIB_LIBC
	help
	  Setting this value will enable driver support for the Grove Light
	  Sensor.

if GROVE_LIGHT_SENSOR
config GROVE_LIGHT_SENSOR_NAME
	string "Driver name"
	default "GROVE_LIGHT_SENSOR"
	help
	  Specify the device name with which the sensor is identified.

config GROVE_LIGHT_SENSOR_ADC_DEV_NAME
	string "ADC where Grove Light Sensor is connected"
	default "ADC_0"
	help
	  Specify the device name of the ADC to which the Grove Light Sensor
	  is connected.

config GROVE_LIGHT_SENSOR_ADC_CHANNEL
	int "ADC channel used by Grove Light Sensor"
	default 10
	help
	  Specify the channel of the ADC to which the Grove Light Sensor is
	  connected.
endif

config GROVE_TEMPERATURE_SENSOR
	bool "Enable the Seeed Grove Temperature Sensor"
	depends on ADC && NEWLIB_LIBC
	help
	  Setting this value will enable driver support for the Grove
	  Temperature Sensor.

if GROVE_TEMPERATURE_SENSOR
config GROVE_TEMPERATURE_SENSOR_NAME
	string "Driver name"
	default "GROVE_TEMPERATURE_SENSOR"
	help
	  Specify the device name with which the Grove Temperature Sensor
	  is identified.

choice
	prompt "Sensor version"
	default GROVE_TEMPERATURE_SENSOR_V1_0
	help
	  Choose the version of the Grove Temperature Sensor.

config GROVE_TEMPERATURE_SENSOR_V1_0
	bool "v1.0"
	help
	  Version 1.0

config GROVE_TEMPERATURE_SENSOR_V1_X
	bool "v1.1/v1.2"
	help
	  Version 1.1 or 1.2

endchoice

config GROVE_TEMPERATURE_SENSOR_ADC_DEV_NAME
	string "ADC where Grove Temperature Sensor is connected"
	default "ADC_0"
	help
	  Specify the device name of the ADC to which the Grove Temperature
	  Sensor is connected.

config GROVE_TEMPERATURE_SENSOR_ADC_CHANNEL
	int "ADC channel used by Grove Temperature Sensor"
	default 10
	help
	  Specify the channel of the ADC to which the Grove Temperature Sensor
	  is connected.

endif
