blob: 4476e8f1697ac0cd31343074df86c7897eb812c2 [file] [log] [blame]
# Copyright (c) 2016 Intel Corporation
# Copyright (c) 2016, Freescale Semiconductor, Inc.
# Copyright 2024 NXP
# SPDX-License-Identifier: Apache-2.0
config SOC_FAMILY_KINETIS
select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
if SOC_FAMILY_KINETIS
config HAS_OSC
bool
help
Set if the oscillator (OSC) module is present in the SoC.
config HAS_MCG
bool
help
Set if the multipurpose clock generator (MCG) module is present in the SoC.
if HAS_OSC
choice
prompt "Oscillator Mode Selection"
default OSC_EXTERNAL
config OSC_EXTERNAL
bool "External reference clock"
help
Set this option to use the oscillator in external reference clock mode.
config OSC_LOW_POWER
bool "Low power oscillator"
help
Set this option to use the oscillator in low-power mode.
config OSC_HIGH_GAIN
bool "High gain oscillator"
help
Set this option to use the oscillator in high-gain mode.
endchoice
config OSC_XTAL0_FREQ
int "External oscillator frequency"
help
Set the external oscillator frequency in Hz. This should be set by the
board's defconfig.
endif # HAS_OSC
if HAS_MCG
config MCG_PRDIV0
hex "PLL external reference divider"
range 0 0x18
default 0
help
Selects the amount to divide down the external reference clock for the PLL.
The resulting frequency must be in the range of 2 MHz to 4 MHz.
config MCG_VDIV0
hex "VCO 0 divider"
range 0 0x1F
default 0
help
Selects the amount to divide the VCO output of the PLL. The VDIV 0 bits
establish the multiplication factor (M) applied to the reference clock
frequency.
config MCG_FCRDIV
int "Fast internal reference clock divider"
range 0 7
default 1
help
Selects the amount to divide down the fast internal reference clock. The
resulting frequency must be in the range 31.25 kHz to 4 MHz.
config MCG_FRDIV
int "FLL external reference divider"
range 0 7
default 0
help
Selects the amount to divide down the external reference clock for the
FLL. The resulting frequency must be in the range 31.25 kHz to 39.0625
kHz.
endif # HAS_MCG
config KINETIS_FLASH_CONFIG
bool "Kinetis flash configuration field"
default y if XIP && !BOOTLOADER_MCUBOOT
help
Include the 16-byte flash configuration field that stores default
protection settings (loaded on reset) and security information that
allows the MCU to restrict access to the FTFx module.
if KINETIS_FLASH_CONFIG
config KINETIS_FLASH_CONFIG_OFFSET
hex "Kinetis flash configuration field offset"
default 0x400
config KINETIS_FLASH_CONFIG_FSEC
hex "Flash security byte (FSEC)"
range 0 0xff
default 0xfe
help
Configures the reset value of the FSEC register, which includes
backdoor key access, mass erase, factory access, and flash security
options.
config KINETIS_FLASH_CONFIG_FOPT
hex "Flash nonvolatile option byte (FOPT)"
range 0 0xff
default 0xff
help
Configures the reset value of the FOPT register, which includes boot,
NMI, and EzPort options.
config KINETIS_FLASH_CONFIG_FEPROT
hex "EEPROM protection byte (FEPROT)"
range 0 0xff
default 0xff
help
Configures the reset value of the FEPROT register for FlexNVM
devices. For program flash only devices, this byte is reserved.
config KINETIS_FLASH_CONFIG_FDPROT
hex "Data flash protection byte (FDPROT)"
range 0 0xff
default 0xff
help
Configures the reset value of the FDPROT register for FlexNVM
devices. For program flash only devices, this byte is reserved.
endif # KINETIS_FLASH_CONFIG
config WDOG_ENABLE_AT_BOOT
bool "Keep watchdog timer enabled at boot"
help
Leave SOC watchdog timer enabled at boot. The specific timeout
and clock configuration of the watchdog at boot is SOC dependent.
Note: if the watchdog timer is enabled at boot, the user will
need to configure the watchdog using z_arm_watchdog_init, as
the SOC requires watchdog configuration before initial expiration
# Enable watchdog configuration function if watchdog is left enabled at boot
config WDOG_INIT
bool
default WDOG_ENABLE_AT_BOOT
rsource "*/Kconfig"
endif # SOC_FAMILY_KINETIS