# USB-KW24D512 board

# Copyright (c) 2017, Phytec Messtechnik GmbH
# SPDX-License-Identifier: Apache-2.0

if BOARD_USB_KW24D512

config BOARD
	default "usb_kw24d512"

config OSC_XTAL0_FREQ
	# The MCU is configured to use 4 MHz external
	# clock from the transceiver provided at the CLK_OUT output.
	# CLK_OUT is internally connected to the input pin EXTAL0
	# of the MCU.
	default 4000000

config MCG_PRDIV0
	default 0x1

config MCG_VDIV0
	default 0x0

config MCG_FCRDIV
	default 2

if PINMUX_MCUX

config PINMUX_MCUX_PORTA
	default y if "$(dt_nodelabel_enabled,uart0)" && SERIAL

config PINMUX_MCUX_PORTB
	default y if SPI_1

config PINMUX_MCUX_PORTC
	default y

config PINMUX_MCUX_PORTD
	default y

endif # PINMUX_MCUX

config SPI_1
	default y
	depends on SPI

config MCR20A_IS_PART_OF_KW2XD_SIP
	default y
	depends on IEEE802154_MCR20A

endif # BOARD_USB_KW24D512
