# Kconfig.lsm6ds0 - LSM6DS0 accelerometer and gyroscope sensor configuration
# options

#
# Copyright (c) 2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

menuconfig LSM6DS0
	bool "LSM6DS0 I2C accelerometer and gyroscope Chip"
	depends on SENSOR && I2C && NANO_TIMEOUTS
	default n
	help
	  Enable driver for LSM6DS0 I2C-based accelerometer and gyroscope
	  sensor.

config LSM6DS0_SYS_LOG_LEVEL
	int "LSM6DS0 Log level"
	depends on SYS_LOG && LSM6DS0
	default 0
	range 0 4
	help
	Sets log level for LSM6DS0 driver.
	Levels are:

	- 0 OFF: do not write

	- 1 ERROR: only write SYS_LOG_ERR

	- 2 WARNING: write SYS_LOG_WRN in addition to previous level

	- 3 INFO: write SYS_LOG_INF in addition to previous levels

	- 4 DEBUG: write SYS_LOG_DBG in addition to previous levels

config LSM6DS0_DEV_NAME
	string "LSM6DS0 device name"
	depends on LSM6DS0
	default "lsm6ds0"

config LSM6DS0_INIT_PRIORITY
	int
	depends on LSM6DS0
	default 70
	prompt "Init priority"
	help
	  Device driver initialization priority.

config LSM6DS0_I2C_ADDR
	hex
	prompt "I2C address"
	depends on LSM6DS0
	default "0x6B"
	help
	  I2C address of the LSM6DS0 sensor.
	  Use 0x6A if the SA0 pin is pulled to GND or 0x6B if the SA0 pin
	  is pulled to VCC.

config LSM6DS0_I2C_MASTER_DEV_NAME
	string "I2C master where LSM6DS0 chip is connected"
	depends on LSM6DS0
	default "I2C_0"
	help
	  Specify the device name of the I2C master device to which LSM6DS0 is
	  connected.

config LSM6DS0_ACCEL_ENABLE_X_AXIS
	bool "Enable accelerometer X axis"
	depends on LSM6DS0
	default y
	help
	  Enable/disable accelerometer X axis totally by stripping everything
	  related in driver.

config LSM6DS0_ACCEL_ENABLE_Y_AXIS
	bool "Enable accelerometer Y axis"
	depends on LSM6DS0
	default y
	help
	  Enable/disable accelerometer Y axis totally by stripping everything
	  related in driver.

config LSM6DS0_ACCEL_ENABLE_Z_AXIS
	bool "Enable accelerometer Z axis"
	depends on LSM6DS0
	default y
	help
	  Enable/disable accelerometer Z axis totally by stripping everything
	  related in driver.

config LSM6DS0_GYRO_ENABLE_X_AXIS
	bool "Enable gyroscope X axis"
	depends on LSM6DS0
	default y
	help
	  Enable/disable gyroscope X axis totally by stripping everything
	  related in driver.

config LSM6DS0_GYRO_ENABLE_Y_AXIS
	bool "Enable gyroscope Y axis"
	depends on LSM6DS0
	default y
	help
	  Enable/disable gyroscope Y axis totally by stripping everything
	  related in driver.

config LSM6DS0_GYRO_ENABLE_Z_AXIS
	bool "Enable gyroscope Z axis"
	depends on LSM6DS0
	default y
	help
	  Enable/disable gyroscope Z axis totally by stripping everything
	  related in driver.

config LSM6DS0_ENABLE_TEMP
	bool "Enable temperature"
	depends on LSM6DS0
	default n
	help
	  Enable/disable temperature totally by stripping everything related in
	  driver.

menu "Attributes"
	depends on LSM6DS0

config LSM6DS0_GYRO_FULLSCALE
	int
	prompt "Gyroscope full-scale range"
	depends on LSM6DS0
	default 245
	help
	  Specify the default gyroscope full-scale range.
	  An X value for the config represents a range of +/- X degree per
	  second. Valid values are 245, 500 and 2000.

config LSM6DS0_GYRO_SAMPLING_RATE
	int
	prompt "Output data rate"
	depends on LIS3MDL
	default 15
	help
	  Specify the default gyroscope output data rate expressed in samples
	  per second (Hz).
	  Data rates supported by the chip are 0, 15, 60, 119, 238, 476,
	  952.

config LSM6DS0_ACCEL_FULLSCALE
	int
	prompt "Accelerometer full-scale range"
	depends on LSM6DS0
	default 2
	help
	  Specify the default accelerometer full-scale range.
	  An X value for the config represents a range of +/- X G. Valid values
	  are 2, 4, 8 and 16.

config LSM6DS0_ACCEL_SAMPLING_RATE
	int
	prompt "Output data rate"
	depends on LIS3MDL
	default 10
	help
	  Specify the default accelerometer output data rate expressed in
	  samples per second (Hz).
	  Data rates supported by the chip are 0, 10, 50, 119, 238, 476, 952.

endmenu
