157 lines
4.0 KiB
Plaintext
157 lines
4.0 KiB
Plaintext
# 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
|