# Kconfig.ak8975 - AK8975 magnetometer 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 AK8975
	bool
	prompt "AK8975 Magnetometer"
	depends on SENSOR && I2C
	default n
	help
	  Enable driver for AK8975 magnetometer.

config AK8975_SYS_LOG_LEVEL
	int "AK8975 Log level"
	depends on SYS_LOG && AK8975
	default 0
	range 0 4
	help
	Sets log level for AK8975 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 AK8975_NAME
	string
	prompt "Driver name"
	default "AK8975"
	depends on AK8975
	help
	  Device name with which the AK8975 sensor is identified.

config AK8975_INIT_PRIORITY
	int
	prompt "Init priority"
	depends on AK8975
	default 70
	help
	  Device driver initialization priority.

config AK8975_I2C_ADDR
	hex
	prompt "I2C address"
	depends on AK8975
	default 0x0C
	range 0x0C 0x0F
	help
	  I2C address of the AK8975 sensor. Choose:
	  - 0x0C if CAD1 connected to GND nad CAD0 is connected to GND
	  - 0x0D if CAD1 connected to GND nad CAD0 is connected to VDD
	  - 0x0E if CAD1 connected to VDD nad CAD0 is connected to GND
	  - 0x0F if CAD1 connected to VDD nad CAD0 is connected to VDD
	  If the AK8975 sensor is part of a MPU9159 chip, the I2C address
	  needs to be 0x0C.

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

config MPU9150
	bool
	prompt "Enable MPU9180 support"
	depends on AK8975
	default n
	help
	  Enable this config option if the AK8975 sensor is part of a
	  MPU9150 chip.

config MPU9150_I2C_ADDR
	hex
	prompt "MPU9180 I2C address"
	depends on AK8975 && MPU9150 && !MPU6050
	range 0x68 0x69
	default 0x68
	help
	  I2C address of the MPU9150. If the driver for MPU6050 is enabled,
	  its address will be used and this option made unavailable.
