# 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_GPIO_DEV_NAME
	string
	prompt "GPIO device"
	default "GPIO_6"
	depends on VL53L0X
	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
	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.
