# Kconfig - VL53L0X time of flight sensor configuration options

#
# Copyright (c) 2017 STMicroelectronics
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig VL53L0X
	bool
	prompt "VL53L0X time of flight sensor"
	depends on SENSOR && I2C
	default n
	select HAS_STLIB
	help
	  Enable driver for VL53L0X I2C-based time of flight sensor.

if !HAS_DTS_I2C_DEVICE

config VL53L0X_NAME
	string
	prompt "Driver name"
	default "VL53L0X"
	depends on VL53L0X
	help
	  Device name with which the VL53L0X sensor is identified.

config VL53L0X_I2C_ADDR
	hex
	prompt "Vl53l0x I2C address"
	default 0x29
	depends on VL53L0X
	help
	  address of the i2c used for the vl53l0x sensor

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

endif

config VL53L0X_XSHUT_CONTROL_ENABLE
	bool "Enable XSHUT pin control"
	depends on VL53L0X
	default n
	help
	    Enable it if XSHUT pin is controlled by host.

config VL53L0X_XSHUT_GPIO_DEV_NAME
	string
	prompt "GPIO device"
	default "GPIO_6"
	depends on VL53L0X_XSHUT_CONTROL_ENABLE
	help
	  The device name of the GPIO device to which the VL53L0X xshut pin
	  is connected.

config VL53L0X_XSHUT_GPIO_PIN_NUM
	int
	prompt "Interrupt GPIO pin number"
	default 6
	depends on VL53L0X_XSHUT_CONTROL_ENABLE
	help
	  The number of the GPIO on which the xshut signal from the VL53L0X
	  is connected.

config VL53L0X_PROXIMITY_THRESHOLD
	int
	prompt "Proximity threshold in millimeters"
	default 100
	depends on VL53L0X
	help
	  Threshold used for proximity detection when sensor is used with SENSOR_CHAN_PROX.
