# Kconfig.mcp9808 - MCP9808 temperature 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 MCP9808
	bool "MCP9808 temperature sensor"
	depends on SENSOR && I2C
	default n
	help
	 Enable driver for MCP9808 temperature sensor.

config MCP9808_SYS_LOG_LEVEL
	int "MCP9808 Log level"
	depends on SYS_LOG && MCP9808
	default 0
	range 0 4
	help
	Sets log level for MCP9808 driver.
	Levels are:

	- 0 OFF: do not write

	- 1 ERROR: only write SYS_LOG_ERR

	- 2 WARNING: write SYS_LOG_WRN in addition to previous level

	- 3 INFO: write SYS_LOG_INF in addition to previous levels

	- 4 DEBUG: write SYS_LOG_DBG in addition to previous levels

config MCP9808_DEV_NAME
	string "MCP9808 device name"
	depends on MCP9808
	default "MCP9808"

config MCP9808_INIT_PRIORITY
	int
	depends on MCP9808
	default 70
	prompt "Init priority"
	help
	 Device driver initialization priority.

config MCP9808_I2C_ADDR
	hex "MCP9808 I2C slave address"
	depends on MCP9808
	default 0x18
	help
	 Specify the I2C slave address for the MCP9808.

config MCP9808_I2C_DEV_NAME
	string "I2C master where MCP9808 is connected"
	depends on MCP9808
	default "I2C_0"
	help
	 Specify the device name of the I2C master device to which MCP9808 is
	 connected.

choice
	prompt "MCP9808 trigger mode"
	depends on MCP9808
	default MCP9808_TRIGGER_NONE

config MCP9808_TRIGGER_NONE
	bool "No trigger"

config MCP9808_TRIGGER_GLOBAL_FIBER
	depends on GPIO  && SYSTEM_WORKQUEUE
	select MCP9808_TRIGGER
	bool "Use global fiber"

config MCP9808_TRIGGER_OWN_FIBER
	depends on GPIO
	select MCP9808_TRIGGER
	bool "Use own fiber"

endchoice

config MCP9808_TRIGGER
	bool
	depends on MCP9808

config MCP9808_GPIO_CONTROLLER
	string "GPIO controller for MCP9808 interrupt"
	depends on MCP9808 && MCP9808_TRIGGER
	default "GPIO_0"
	help
	  The GPIO controller the MCP9808 interrupt is connected to.

config MCP9808_GPIO_PIN
	int "GPIO pin for MCP9808 interrupt"
	depends on MCP9808 && MCP9808_TRIGGER
	default 3
	help
	  The GPIO pin the MCP9808 interrupt is connected to.

config MCP9808_FIBER_STACK_SIZE
	int "Sensor delayed work fiber stack size"
	depends on MCP9808 && MCP9808_TRIGGER_OWN_FIBER
	default 1024

config MCP9808_FIBER_PRIORITY
	int "MCP9808 fiber priority"
	depends on MCP9808 && MCP9808_TRIGGER_OWN_FIBER
	default 10
