# Kconfig - Discovery IoT L475 board configuration
#
# Copyright (c) 2017 Linaro Limited
#
# SPDX-License-Identifier: Apache-2.0
#

if BOARD_DISCO_L475_IOT1

config BOARD
	default disco_l475_iot1

if GPIO

config GPIO_STM32_PORTA
	def_bool y

config GPIO_STM32_PORTB
	def_bool y

config GPIO_STM32_PORTC
	def_bool y

config GPIO_STM32_PORTD
	def_bool n

config GPIO_STM32_PORTE
	def_bool n

config GPIO_STM32_PORTF
	def_bool n

config GPIO_STM32_PORTG
	def_bool n

config GPIO_STM32_PORTH
	def_bool n

endif # GPIO


if SERIAL

config UART_STM32_PORT_1
	def_bool y

endif # SERIAL


if I2C

config I2C_1
	def_bool n

config I2C_2
	def_bool y

if I2C_1

config I2C_1_DEFAULT_CFG
	default 0x14

config I2C_1_IRQ_PRI
	default 0

endif # I2C_1

if I2C_2

config I2C_2_DEFAULT_CFG
	default 0x14

config I2C_2_IRQ_PRI
	default 0

endif # I2C_2

endif # I2C


if PWM

config PWM_STM32_1
	def_bool n

config PWM_STM32_2
	def_bool y

endif # PWM
endif # BOARD_DISCO_L475_IOT1
