# Kconfig - MPU6050 Six-Axis Motion Tracking device configuration options

#
# Copyright (c) 2016 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig MPU6050
	bool "MPU6050 Six-Axis Motion Tracking Device"
	depends on I2C
	help
	  Enable driver for MPU6050 I2C-based six-axis motion tracking device.

if MPU6050

config MPU6050_NAME
	string "Driver name"
	default "MPU6050"
	help
	  Device name with which the MPU6050 sensor is identified.

config MPU6050_I2C_ADDR
	hex "I2C address"
	default 0x68
	range 0x68 0x69
	help
	  I2C address of the MPU6050 sensor.
	  Choose 0x68 if the AD0 pin is pulled to GND or 0x69 if the AD0 pin
	  is pulled to VDD.

config MPU6050_I2C_MASTER_DEV_NAME
	string "I2C master where MPU6050 is connected"
	default "I2C_0"
	help
	  Specify the device name of the I2C master device to which MPU6050 is
	  connected.

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

config MPU6050_TRIGGER_NONE
	bool "No trigger"

config MPU6050_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	depends on GPIO
	select MPU6050_TRIGGER

config MPU6050_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	select MPU6050_TRIGGER

endchoice

config MPU6050_TRIGGER
	bool

config MPU6050_GPIO_DEV_NAME
	string "GPIO device"
	default "GPIO_0"
	depends on MPU6050_TRIGGER
	help
	  The device name of the GPIO device to which the MPU6050 interrupt pin
	  is connected.

config MPU6050_GPIO_PIN_NUM
	int "Interrupt GPIO pin number"
	default 0
	depends on MPU6050_TRIGGER
	help
	  The number of the GPIO on which the interrupt signal from the MPU6050
	  chip will be received.

config MPU6050_THREAD_PRIORITY
	int "Thread priority"
	depends on MPU6050_TRIGGER_OWN_THREAD
	default 10
	help
	  Priority of thread used by the driver to handle interrupts.

config MPU6050_THREAD_STACK_SIZE
	int "Thread stack size"
	depends on MPU6050_TRIGGER_OWN_THREAD
	default 1024
	help
	  Stack size of thread used by the driver to handle interrupts.

config MPU6050_ACCEL_FS
	int "Accelerometer full-scale range"
	default 2
	help
	  Magnetometer full-scale range.
	  An X value for the config represents a range of +/- X g. Valid
	  values are 2, 4, 8 and 16.

config MPU6050_GYRO_FS
	int "Gyroscope full-scale range"
	default 250
	help
	  Gyroscope full-scale range.
	  An X value for the config represents a range of +/- X degrees/second.
	  Valid values are 250, 500, 1000, 2000.

endif # MPU6050
