# Kconfig - drivers configuration options for SeeedStudio Grove Devices

#
# Copyright (c) 2015 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 GROVE
        bool
        prompt "Grove Device Drivers"
        default n
        help
	  Check this box to enable the Seeed Grove device drivers


config SYS_LOG_GROVE_LEVEL
	int
	prompt "Grove Log level"
	depends on SYS_LOG && GROVE
	default 0
	range 0 4
	help
	  Sets log level for Grove Device Drivers.
	  Levels are:
	  0 OFF, do not write
	  1 ERROR, only write SYS_LOG_ERR
	  2 WARNING, write SYS_LOG_WRN in adition to previous level
	  3 INFO, write SYS_LOG_INF in adition to previous levels
	  4 DEBUG, write SYS_LOG_DBG in adition to previous levels

config GROVE_LCD_RGB
        bool
        default n
        depends on GROVE
        prompt "Enable the Seeed Grove LCD RGB Backlight"
        help
        Setting this value will enable driver support for the Groove-LCD RGB
        Backlight.

config GROVE_LCD_RGB_I2C_MASTER_DEV_NAME
	string "I2C Master where Grove LCD is connected"
	depends on GROVE_LCD_RGB
	default "I2C_0"
	help
	Specify the device name of the I2C master device to which the
	Grove LCD is connected.

config GROVE_LCD_RGB_INIT_PRIORITY
	int
	prompt "Init priority"
	default 70
	depends on GROVE_LCD_RGB
	help
	  Device driver initialization priority.
	  As the device is connected to I2C bus, its driver has
	  to be initialized after the I2C one.
