# GROW_R502A hzgrow Fingerprint sensor Configuration options

# Copyright (c) 2021 Linumiz
# SPDX-License-Identifier: Apache-2.0

menuconfig GROW_R502A
	bool "GROW_R502A Fingerprint Sensor"
	default y
	depends on DT_HAS_HZGROW_R502A_ENABLED
	depends on UART_INTERRUPT_DRIVEN && SERIAL
	help
	  Enable driver for GROW_R502A Fingerprint Sensor.

if GROW_R502A

choice
	prompt "Trigger mode"
	default GROW_R502A_TRIGGER_NONE
	help
	  Specify the type of triggering used by the driver.

config GROW_R502A_TRIGGER_NONE
	bool "No trigger"

config GROW_R502A_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	depends on GPIO
	select GROW_R502A_TRIGGER

config GROW_R502A_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	select GROW_R502A_TRIGGER

endchoice


config GROW_R502A_TRIGGER
	bool

config GROW_R502A_THREAD_PRIORITY
	int "Thread priority"
	depends on GROW_R502A_TRIGGER_OWN_THREAD && GROW_R502A_TRIGGER
	default 10
	help
	  Priority of thread used by the driver to handle interrupts.

config GROW_R502A_THREAD_STACK_SIZE
	int "Thread stack size"
	depends on GROW_R502A_TRIGGER_OWN_THREAD && GROW_R502A_TRIGGER
	default 1024
	help
	  Stack size of thread used by the driver to handle interrupts.

config GROW_R502A_GPIO_POWER
	bool "GROW_R502A sensor VCC and VT GPIO"
	help
	  Enable control of vin-gpios and act-gpios.

endif # GROW_R502A
