# Kinetis KWx SoC configuration options

# Copyright (c) 2017, NXP
# SPDX-License-Identifier: Apache-2.0

if SOC_MKW41Z4

config SOC
	default "mkw41z4"

config NUM_IRQS
	default 32

config ADC_MCUX_ADC16
	default y
	depends on ADC

config CLOCK_CONTROL_MCUX_SIM
	default y
	depends on CLOCK_CONTROL

config COUNTER_MCUX_RTC
	default y
	depends on COUNTER

config GPIO_MCUX
	default y
	depends on GPIO

config UART_MCUX_LPUART
	default y
	depends on SERIAL

config I2C_MCUX
	default y
	depends on I2C

config SPI_MCUX_DSPI
	default y
	depends on SPI

config ENTROPY_MCUX_TRNG
	default y
	depends on ENTROPY_GENERATOR

config SOC_FLASH_MCUX
	default y
	depends on FLASH

config PWM_MCUX_TPM
	default y
	depends on PWM

if NETWORKING

config NET_L2_IEEE802154
	default y
	depends on !NET_L2_OPENTHREAD

config IEEE802154_KW41Z
	default y

config NET_CONFIG_IEEE802154_DEV_NAME
	default IEEE802154_KW41Z_DRV_NAME

endif # NETWORKING

choice CSPRNG_GENERATOR_CHOICE
	default CTR_DRBG_CSPRNG_GENERATOR
endchoice

#
# MBEDTLS is larger but much faster than TinyCrypt so choose wisely
#
#config MBEDTLS
config TINYCRYPT
	default y
	depends on ENTROPY_GENERATOR

#
# KW41Z TRNG entropy source cannot be used as a Hardware RNG source so
# use XOSHIRO for PRNG
#
choice RNG_GENERATOR_CHOICE
	default XOSHIRO_RANDOM_GENERATOR
endchoice

endif # SOC_MKW41Z4
