# 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

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 BT_UART

endif # UART_MCUX

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

config I2C_1
	def_bool n

endif # I2C

if ADC

config ADC_1
	def_bool y

endif # ADC

if PWM_MCUX_FTM

config PWM_3
	def_bool y

endif # PWM_MCUX_FTM

if SPI

config SPI_0
	def_bool y

config SPI_1
	def_bool n

config SPI_2
	def_bool n

endif # SPI

if NETWORKING

config NET_L2_ETHERNET
	def_bool y

config ETH_MCUX_0
	def_bool y if NET_L2_ETHERNET

endif # NETWORKING

endif # BOARD_FRDM_K64F
