# Bosch BMG160 gyroscope configuration options

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

menuconfig BMG160
	bool "Bosch BMG160 gyroscope support"
	depends on I2C
	help
	  Enable Bosch BMG160 gyroscope support.

if BMG160

config BMG160_DRV_NAME
	string "Driver's name"
	default "bmg160"
	help
	  Name for the BMG160 driver which will be used for binding.

config BMG160_I2C_PORT_NAME
	string "I2C master controller port name"
	default "I2C_0"
	help
	  Master I2C port name through which BMG160 chip is accessed.

config BMG160_I2C_ADDR
	hex "BMG160 I2C address"
	default 0x68
	help
	  BMG160 chip's I2C address. Chip supports two addresses: 0x68 and 0x69 (if
	  SDO pin is pulled to GND).

choice
	prompt "BMG160 I2C bus speed"
	default BMG160_I2C_SPEED_STANDARD

config BMG160_I2C_SPEED_STANDARD
	bool "Standard"
	help
	  Standard bus speed of up to 100kHz.

config BMG160_I2C_SPEED_FAST
	bool "Fast"
	help
	  Fast bus speed of up to 400KHz.
endchoice

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

config BMG160_TRIGGER_NONE
	bool "No trigger"

config BMG160_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	select BMG160_TRIGGER

config BMG160_TRIGGER_OWN_THREAD
	bool "Use own thread"
	select BMG160_TRIGGER
endchoice

config BMG160_TRIGGER
	bool

config BMG160_THREAD_PRIORITY
	int "Own thread priority"
	depends on BMG160_TRIGGER_OWN_THREAD
	default 10
	help
	  The priority of the thread used for handling interrupts.

config BMG160_THREAD_STACK_SIZE
	int "Own thread stack size"
	depends on BMG160_TRIGGER_OWN_THREAD
	default 1024
	help
	  The thread stack size.

config BMG160_GPIO_PORT_NAME
	string "GPIO controller port name"
	depends on BMG160_TRIGGER
	default "GPIO_0"
	help
	  The gpio controller the interrupt pin is attached to.

config BMG160_INT_PIN
	hex "BMG160 INT PIN"
	depends on BMG160_TRIGGER
	default 2
	help
	  BMG160 interrupt pin.

choice
	prompt "Gyroscope range setting."
	default BMG160_RANGE_RUNTIME

config BMG160_RANGE_RUNTIME
	bool "Set at runtime."

config BMG160_RANGE_2000DPS
	bool "2000 DPS"

config BMG160_RANGE_1000DPS
	bool "1000 DPS"

config BMG160_RANGE_500DPS
	bool "500 DPS"

config BMG160_RANGE_250DPS
	bool "250 DPS"

config BMG160_RANGE_125DPS
	bool "125 DPS"
endchoice

choice
	prompt "Gyroscope sampling frequency."
	default BMG160_ODR_RUNTIME

config BMG160_ODR_RUNTIME
	bool "Set at runtime."

config BMG160_ODR_100
	bool "100 Hz"

config BMG160_ODR_200
	bool "200 Hz"

config BMG160_ODR_400
	bool "400 Hz"

config BMG160_ODR_1000
	bool "1000 Hz"

config BMG160_ODR_2000
	bool "2000 Hz"
endchoice

endif # BMG160
