# 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 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
