# Kconfig - 96Boards Argonkey Board Configuration
#
# Copyright (c) 2018 STMicroelectronics
#
# SPDX-License-Identifier: Apache-2.0
#

if BOARD_96B_ARGONKEY

config BOARD
	default "96b_argonkey"

if UART_CONSOLE

config UART_STM32_PORT_1
	default y

endif # UART_CONSOLE

if I2C

config I2C_1
	default y

config I2C_2
	default y

config I2C_3
	default y

config I2C_STM32_INTERRUPT
	default y

endif # I2C

if SPI

config SPI_2
	default y

endif # SPI

if LSM6DSL

choice LSM6DSL_BUS_TYPE
	default LSM6DSL_SPI
endchoice

choice LSM6DSL_TRIGGER_MODE
	default LSM6DSL_TRIGGER_GLOBAL_THREAD
endchoice

config LSM6DSL_SENSORHUB
	default y

choice LSM6DSL_EXTERNAL_SENSOR_0
	default LSM6DSL_EXT0_LIS2MDL
endchoice

endif # LSM6DSL

endif # BOARD_96B_ARGONKEY
