# FXAS21002 3-axis gyroscope

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

menuconfig FXAS21002
	bool "FXAS21002 gyroscope driver"
	depends on I2C
	help
	  Enable driver for the FXAS21002 gyroscope

if FXAS21002

config FXAS21002_WHOAMI
	hex "WHOAMI value"
	range 0x00 0xff
	default 0xd7
	help
	  The datasheet defines the value of the WHOAMI register, but some
	  pre-production devices can have a different value. It is unlikely you
	  should need to change this configuration option from the default.

config FXAS21002_RANGE
	int "Full scale range"
	range 0 3
	default 0
	help
	  Selects the full scale range
	  0: +/-2000 dps (62.5 mdps/LSB)
	  1: +/-1000 dps (31.25 mdps/LSB)
	  2: +/-500 dps (15.625 mdps/LSB)
	  3: +/-250 dps (7.8125 mdps/LSB)

config FXAS21002_DR
	int "Output data rate"
	range 0 7
	default 3
	help
	  Selects the output data rate
	  0: 800 Hz
	  1: 400 Hz
	  2: 200 Hz
	  3: 100 Hz
	  4: 50 Hz
	  5: 25 Hz
	  6: 12.5 Hz
	  7: 12.5 Hz

choice
	prompt "Trigger mode"
	default FXAS21002_TRIGGER_NONE

config FXAS21002_TRIGGER_NONE
	bool "No trigger"

config FXAS21002_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	select FXAS21002_TRIGGER

config FXAS21002_TRIGGER_OWN_THREAD
	bool "Use own thread"
	select FXAS21002_TRIGGER

endchoice

config FXAS21002_TRIGGER
	bool

if FXAS21002_TRIGGER

config FXAS21002_DRDY_INT1
	bool "Data ready interrupt to INT1 pin"
	help
	  Say Y to route data ready interrupt to INT1 pin. Say N to route to
	  INT2 pin.

config FXAS21002_THREAD_PRIORITY
	int "Own thread priority"
	depends on FXAS21002_TRIGGER_OWN_THREAD
	default 10

config FXAS21002_THREAD_STACK_SIZE
	int "Own thread stack size"
	depends on FXAS21002_TRIGGER_OWN_THREAD
	default 1024

endif # FXAS21002_TRIGGER

endif # FXAS21002
