# 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
	default y if UART_CONSOLE

config UART_MCUX_3
	default y if BT_UART

endif # UART_MCUX

if PINMUX_MCUX

config PINMUX_MCUX_PORTA
	default y

config PINMUX_MCUX_PORTB
	default y

config PINMUX_MCUX_PORTC
	default y

config PINMUX_MCUX_PORTD
	default y if SPI_0 || UART_MCUX_2

config PINMUX_MCUX_PORTE
	default y

endif # PINMUX_MCUX

if GPIO_MCUX

config GPIO_MCUX_PORTA
	default y

config GPIO_MCUX_PORTB
	default y

config GPIO_MCUX_PORTC
	default y

config GPIO_MCUX_PORTD
	default y

config GPIO_MCUX_PORTE
	default y

endif # GPIO_MCUX

if I2C

config I2C_0
	default y

endif # I2C

if ADC

config ADC_1
	default y

endif # ADC

if PWM_MCUX_FTM

config PWM_3
	default y

endif # PWM_MCUX_FTM

if SPI

config SPI_0
	default y

endif # SPI

if NETWORKING

config NET_L2_ETHERNET
	default y if !MODEM_WNCM14A2A

config ETH_MCUX_0
	default y if NET_L2_ETHERNET

endif # NETWORKING

endif # BOARD_FRDM_K64F
