# Kconfig - SX9500 SAR proximity sensor configuration options

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

menuconfig SX9500
	bool "SX9500 I2C SAR Proximity Chip"
	depends on SENSOR && I2C
	default n
	help
	  Enable driver for SX9500 I2C-based SAR proximity sensor.

config SX9500_DEV_NAME
	string "SX9500 device name"
	depends on SX9500
	default "SX9500"

config SX9500_I2C_ADDR
	hex "SX9500 I2C slave address"
	depends on SX9500
	default 0x2B
	help
	  Specify the I2C slave address for the SX9500.

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

config SX9500_PROX_CHANNEL
	int
	default 3
	depends on SX9500
	prompt "Proximity channel to use"
	help
	  The SX9500 offers 4 separate proximity channels.  Choose which one
	  you are using.  Valid numbers are 0 to 3.

choice
	prompt "SX9500 trigger mode"
	depends on SX9500
	default SX9500_TRIGGER_GLOBAL_THREAD

config SX9500_TRIGGER_NONE
	bool "No trigger"

config SX9500_TRIGGER_GLOBAL_THREAD
	depends on GPIO
	select SX9500_TRIGGER
	bool "Use global thread"

config SX9500_TRIGGER_OWN_THREAD
	depends on GPIO
	select SX9500_TRIGGER
	bool "Use own thread"

endchoice

config SX9500_TRIGGER
	bool
	depends on SX9500

config SX9500_GPIO_CONTROLLER
	string "GPIO controller for SX9500 interrupt"
	depends on SX9500 && SX9500_TRIGGER
	default GPIO_0
	help
	  Specify the device name of the GPIO controller the SX9500 interrupt
	  is connected to.

config SX9500_GPIO_PIN
	int "GPIO pin for SX9500 interrupt"
	depends on SX9500 && SX9500_TRIGGER
	default 3

config SX9500_THREAD_STACK_SIZE
	int "Sensor delayed work thread stack size"
	depends on SX9500 && SX9500_TRIGGER_OWN_THREAD
	default 1024

config SX9500_THREAD_PRIORITY
	int "Thread priority"
	depends on SX9500 && SX9500_TRIGGER_OWN_THREAD
	default 10
