# Kconfig - FRDM-K64F board
#
# Copyright (c) 2016, Freescale Semiconductor, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#

if BOARD_FRDM_K64F

config BOARD
	default frdm_k64f

if !HAS_DTS

config FLASH_SIZE
	default 1024

config SRAM_SIZE
	default 192

endif # !HAS_DTS

config OSC_XTAL0_FREQ
	default 50000000

config MCG_PRDIV0
	default 0x13

config MCG_VDIV0
	default 0x18

config MCG_FCRDIV
	default 1

if UART_MCUX

config UART_MCUX_0
	def_bool y if UART_CONSOLE

config UART_MCUX_3
	def_bool y if BLUETOOTH_UART

endif # UART_MCUX

config BLUETOOTH_UART_ON_DEV_NAME
	default "UART_3" if BLUETOOTH_UART

config PINMUX
	def_bool y

if PINMUX_MCUX

config PINMUX_MCUX_PORTA
	def_bool y

config PINMUX_MCUX_PORTB
	def_bool y

config PINMUX_MCUX_PORTC
	def_bool y

config PINMUX_MCUX_PORTD
	def_bool y if SPI_0

config PINMUX_MCUX_PORTE
	def_bool y

endif # PINMUX_MCUX

if GPIO_MCUX

config GPIO_MCUX_PORTA
	def_bool y

config GPIO_MCUX_PORTB
	def_bool y

config GPIO_MCUX_PORTC
	def_bool y

config GPIO_MCUX_PORTD
	def_bool y

config GPIO_MCUX_PORTE
	def_bool y

endif # GPIO_MCUX

if I2C

config I2C_0
	def_bool y

if I2C_0

config I2C_0_DEFAULT_CFG
	default 0x12

config I2C_0_IRQ_PRI
	default 0

endif # I2C_0

config I2C_1
	def_bool n

if I2C_1

config I2C_1_DEFAULT_CFG
	default 0x12

config I2C_1_IRQ_PRI
	default 0

endif # I2C_1

endif # I2C

if FXOS8700

config FXOS8700_I2C_NAME
	default I2C_0_NAME

config FXOS8700_I2C_ADDRESS
	default 0x1d

config FXOS8700_GPIO_NAME
	default GPIO_MCUX_PORTC_NAME

config FXOS8700_GPIO_PIN
	default 13

endif # FXOS8700

if PWM_K64_FTM

config PWM_K64_FTM_0
	def_bool y

endif # PWM_K64_FTM

if SPI

config SPI_0
	def_bool y

config SPI_0_IRQ_PRI
	default 3

config SPI_1
	def_bool n

config SPI_1_IRQ_PRI
	default 3

config SPI_2
	def_bool n

config SPI_2_IRQ_PRI
	default 3

endif # SPI

if NET_L2_ETHERNET

config ETH_MCUX_0
	def_bool y

endif # NET_L2_ETHERNET

endif # BOARD_FRDM_K64F
