nuttx/arch/arm/src/kinetis/Kconfig
2021-07-20 19:28:51 -07:00

1475 lines
33 KiB
Plaintext

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
comment "Kinetis Configuration Options"
choice
prompt "Kinetis Chip Selection"
default ARCH_CHIP_MK60N512VMD100
depends on ARCH_CHIP_KINETIS
config ARCH_CHIP_MK20DN32VLH5
bool "MK20DN32VLH5"
select ARCH_FAMILY_K20
config ARCH_CHIP_MK20DX32VLH5
bool "MK20DX32VLH5"
select ARCH_FAMILY_K20
config ARCH_CHIP_MK20DN64VLH5
bool "MK20DN64VLH5"
select ARCH_FAMILY_K20
config ARCH_CHIP_MK20DX64VLH5
bool "MK20DX64VLH5"
select ARCH_FAMILY_K20
config ARCH_CHIP_MK20DN128VLH5
bool "MK20DN128VLH5"
select ARCH_FAMILY_K20
config ARCH_CHIP_MK20DX128VLH5
bool "MK20DX128VLH5"
select ARCH_FAMILY_K20
config ARCH_CHIP_MK20DX64VLH7
bool "MK20DX64VLH7"
select ARCH_FAMILY_K20
select KINETIS_HAVE_I2C1
config ARCH_CHIP_MK20DX128VLH7
bool "MK20DX128VLH7"
select ARCH_FAMILY_K20
select KINETIS_HAVE_I2C1
config ARCH_CHIP_MK20DX256VLH7
bool "MK20DX256VLH7"
select ARCH_FAMILY_K20
select KINETIS_HAVE_I2C1
config ARCH_CHIP_MK28FN2M0VMI15
bool "MK28FN2M0VMI15"
select ARCH_FAMILY_K28
config ARCH_CHIP_MK28FN2M0CAU15R
bool "MK28FN2M0CAU15R"
select ARCH_FAMILY_K28
config ARCH_CHIP_MK40N512VLQ100
bool "MK40N512VLQ100"
select ARCH_FAMILY_K40
select KINETIS_HAVE_I2C1
config ARCH_CHIP_MK40N512VMD100
bool "MK40N512VMD100"
select ARCH_FAMILY_K40
select KINETIS_HAVE_I2C1
config ARCH_CHIP_MK40X128VLQ100
bool "MK40X128VLQ100"
select ARCH_FAMILY_K40
select KINETIS_HAVE_I2C1
config ARCH_CHIP_MK40X128VMD100
bool "MK40X128VMD100"
select ARCH_FAMILY_K40
select KINETIS_HAVE_I2C1
config ARCH_CHIP_MK40X256VLQ100
bool "MK40X256VLQ100"
select ARCH_FAMILY_K40
select KINETIS_HAVE_I2C1
config ARCH_CHIP_MK40X256VMD100
bool "MK40X256VMD100"
select ARCH_FAMILY_K40
select KINETIS_HAVE_I2C1
config ARCH_CHIP_MK60N256VLQ100
bool "MK60N256VLQ100"
select ARCH_FAMILY_K60
select KINETIS_HAVE_I2C1
config ARCH_CHIP_MK60N256VMD100
bool "MK60N256VMD100"
select ARCH_FAMILY_K60
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
config ARCH_CHIP_MK60N512VLL100
bool "MK60N512VLL100"
select ARCH_FAMILY_K60
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
config ARCH_CHIP_MK60N512VLQ100
bool "MK60N512VLQ100"
select ARCH_FAMILY_K60
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
config ARCH_CHIP_MK60N512VMD100
bool "MK60N512VMD100"
select ARCH_FAMILY_K60
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
config ARCH_CHIP_MK60X256VLQ100
bool "MK60X256VLQ100"
select ARCH_FAMILY_K60
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
config ARCH_CHIP_MK60X256VMD100
bool "MK60X256VMD100"
select ARCH_FAMILY_K60
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
config ARCH_CHIP_MK60FN1M0VLQ12
bool "MK60FN1M0VLQ12"
select ARCH_FAMILY_K60
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
config ARCH_CHIP_MK64FN1M0VLL12
bool "MK64FN1M0VLL12"
select ARCH_FAMILY_K64
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
select KINETIS_HAVE_SPI1
select KINETIS_HAVE_SPI2
config ARCH_CHIP_MK64FX512VLL12
bool "MK64FX512VLL12"
select ARCH_FAMILY_K64
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
select KINETIS_HAVE_SPI1
select KINETIS_HAVE_SPI2
config ARCH_CHIP_MK64FX512VDC12
bool "MK64FX512VDC12"
select ARCH_FAMILY_K64
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
select KINETIS_HAVE_SPI1
select KINETIS_HAVE_SPI2
config ARCH_CHIP_MK64FN1M0VDC12
bool "MK64FN1M0VDC12"
select ARCH_FAMILY_K64
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
select KINETIS_HAVE_SPI1
select KINETIS_HAVE_SPI2
config ARCH_CHIP_MK64FX512VLQ12
bool "MK64FX512VLQ12"
select ARCH_FAMILY_K64
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
select KINETIS_HAVE_SPI1
select KINETIS_HAVE_SPI2
config ARCH_CHIP_MK64FX512VMD12
bool "MK64FX512VMD12"
select ARCH_FAMILY_K64
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
select KINETIS_HAVE_SPI1
select KINETIS_HAVE_SPI2
config ARCH_CHIP_MK64FN1M0VMD12
bool "MK64FN1M0VMD12"
select ARCH_FAMILY_K64
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
select KINETIS_HAVE_SPI1
select KINETIS_HAVE_SPI2
config ARCH_CHIP_MK66FX1M0VMD18
bool "MK66FX1M0VMD18"
select ARCH_FAMILY_K66
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
select KINETIS_HAVE_I2C3
select KINETIS_HAVE_SPI1
select KINETIS_HAVE_SPI2
config ARCH_CHIP_MK66FN2M0VMD18
bool "MK66FN2M0VMD18"
select ARCH_FAMILY_K66
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
select KINETIS_HAVE_I2C3
select KINETIS_HAVE_SPI1
select KINETIS_HAVE_SPI2
config ARCH_CHIP_MK66FX1M0VLQ18
bool "MK66FX1M0VLQ18"
select ARCH_FAMILY_K66
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
select KINETIS_HAVE_I2C3
select KINETIS_HAVE_SPI1
select KINETIS_HAVE_SPI2
config ARCH_CHIP_MK66FN2M0VLQ18
bool "MK66FN2M0VLQ18"
select ARCH_FAMILY_K66
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_I2C2
select KINETIS_HAVE_I2C3
select KINETIS_HAVE_SPI1
select KINETIS_HAVE_SPI2
endchoice
# These "hidden" settings determine whether a peripheral option is available
# for the selected MCU
config KINETIS_HAVE_UART5
bool
default n
config KINETIS_HAVE_LPUART0
bool
default n
config KINETIS_HAVE_LPUART1
bool
default n
config KINETIS_HAVE_LPUART2
bool
default n
config KINETIS_HAVE_LPUART3
bool
default n
config KINETIS_HAVE_LPUART4
bool
default n
# When there are multiple instances of a device, these "hidden" settings
# will automatically be selected and will represent the 'OR' of the
# instances selected.
config KINETIS_SERIALDRIVER
bool
default n
config KINETIS_LPUART
bool
default n
select MCU_SERIAL
config KINETIS_UART
bool
default n
select MCU_SERIAL
# Chip families
config ARCH_FAMILY_K20
bool
default n
select KINETIS_HAVE_UART5
config ARCH_FAMILY_K28
bool
default n
select KINETIS_HAVE_I2C1
select KINETIS_HAVE_FTM3
select KINETIS_HAVE_LPUART0
select KINETIS_HAVE_LPUART1
select KINETIS_HAVE_LPUART2
select KINETIS_HAVE_LPUART3
select KINETIS_HAVE_LPUART4
select KINETIS_HAVE_TPM1
select KINETIS_HAVE_TPM2
config ARCH_FAMILY_K40
bool
default n
select KINETIS_HAVE_UART5
config ARCH_FAMILY_K60
bool
default n
select KINETIS_HAVE_UART5
config ARCH_FAMILY_K64
bool
default n
select KINETIS_HAVE_FTM3
select KINETIS_HAVE_UART5
config ARCH_FAMILY_K66
bool
default n
select KINETIS_HAVE_FTM3
select KINETIS_HAVE_LPUART0
select KINETIS_HAVE_TPM1
select KINETIS_HAVE_TPM2
select KINETIS_HAVE_DMA
select KINETIS_HAVE_FLEXCAN0
select KINETIS_HAVE_FLEXCAN1
menu "Kinetis Peripheral Support"
config KINETIS_HAVE_FTM3
bool
default n
config KINETIS_HAVE_DMA
bool
default n
config KINETIS_SPI
bool
default n
select SPI
config KINETIS_HAVE_I2C1
bool
default n
config KINETIS_HAVE_I2C2
bool
default n
config KINETIS_HAVE_I2C3
bool
default n
config KINETIS_HAVE_SPI1
bool
default n
config KINETIS_HAVE_SPI2
bool
default n
config KINETIS_HAVE_TPM1
bool
default n
config KINETIS_HAVE_TPM2
bool
default n
config KINETIS_HAVE_FLEXCAN0
bool
default n
config KINETIS_HAVE_FLEXCAN1
bool
default n
config KINETIS_TRACE
bool "Trace"
default n
---help---
Enable trace clocking on power up.
config KINETIS_FLEXBUS
bool "FlexBus"
default n
---help---
Enable flexbus clocking on power up.
config KINETIS_UART0
bool "UART0"
default n
select UART0_SERIALDRIVER
select KINETIS_UART
select KINETIS_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
---help---
Support UART0
config KINETIS_UART1
bool "UART1"
default n
select UART1_SERIALDRIVER
select KINETIS_UART
select KINETIS_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
---help---
Support UART1
config KINETIS_UART2
bool "UART2"
default n
select UART2_SERIALDRIVER
select KINETIS_UART
select KINETIS_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
---help---
Support UART2
config KINETIS_UART3
bool "UART3"
default n
select UART3_SERIALDRIVER
select KINETIS_UART
select KINETIS_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
---help---
Support UART3
config KINETIS_UART4
bool "UART4"
default n
select UART4_SERIALDRIVER
select KINETIS_UART
select KINETIS_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
---help---
Support UART4
config KINETIS_UART5
bool "UART5"
default n
depends on KINETIS_HAVE_UART5
select UART5_SERIALDRIVER
select KINETIS_UART
select KINETIS_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
---help---
Support UART5
config KINETIS_LPUART0
bool "Low power LPUART0"
default n
depends on KINETIS_HAVE_LPUART0
select LPUART0_SERIALDRIVER
select KINETIS_LPUART
select KINETIS_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
---help---
Support the low power UART0
config KINETIS_LPUART1
bool "Low power LPUART1"
default n
depends on KINETIS_HAVE_LPUART1
select LPUART1_SERIALDRIVER
select KINETIS_LPUART
select KINETIS_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
---help---
Support the low power UART1
config KINETIS_LPUART2
bool "Low power LPUART2"
default n
depends on KINETIS_HAVE_LPUART2
select LPUART2_SERIALDRIVER
select KINETIS_LPUART
select KINETIS_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
---help---
Support the low power UART2
config KINETIS_LPUART3
bool "Low power LPUART3"
default n
depends on KINETIS_HAVE_LPUART3
select LPUART3_SERIALDRIVER
select KINETIS_LPUART
select KINETIS_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
---help---
Support the low power UART3
config KINETIS_LPUART4
bool "Low power LPUART4"
default n
depends on KINETIS_HAVE_LPUART4
select LPUART4_SERIALDRIVER
select KINETIS_LPUART
select KINETIS_SERIALDRIVER
select ARCH_HAVE_SERIAL_TERMIOS
---help---
Support the low power UART4
config KINETIS_ENET
bool "Ethernet"
default n
depends on ARCH_FAMILY_K60 || ARCH_FAMILY_K64 || ARCH_FAMILY_K66
select ARCH_HAVE_PHY
select ARCH_HAVE_NETDEV_STATISTICS
select NET
select NETDEVICES
---help---
Support Ethernet (K6x only)
config KINETIS_RNGB
bool "Random number generator"
default n
depends on ARCH_FAMILY_K60 || ARCH_FAMILY_K64 || ARCH_FAMILY_K66
select ARCH_HAVE_RNG
---help---
Support the random number generator(K6x only)
config KINETIS_FLEXCAN
bool
default n
config KINETIS_FLEXCAN0
bool "FLEXCAN0"
select KINETIS_FLEXCAN
select NET_CAN_HAVE_TX_DEADLINE
default n
---help---
Support FlexCAN0
config KINETIS_FLEXCAN1
bool "FLEXCAN1"
select KINETIS_FLEXCAN
select NET_CAN_HAVE_TX_DEADLINE
default n
---help---
Support FlexCAN1
config KINETIS_SPI0
bool "SPI0"
default n
select KINETIS_SPI
---help---
Support SPI0
config KINETIS_SPI1
bool "SPI1"
default n
select KINETIS_SPI
depends on KINETIS_HAVE_SPI1
---help---
Support SPI1
config KINETIS_SPI2
bool "SPI2"
default n
select KINETIS_SPI
depends on KINETIS_HAVE_SPI2
---help---
Support SPI2
config KINETIS_I2C0
bool "I2C0"
default n
select I2C
---help---
Support I2C0
config KINETIS_I2C1
bool "I2C1"
default n
select I2C
depends on KINETIS_HAVE_I2C1
---help---
Support I2C1
config KINETIS_I2C2
bool "I2C2"
default n
select I2C
depends on KINETIS_HAVE_I2C2
---help---
Support I2C2
config KINETIS_I2C3
bool "I2C3"
default n
select I2C
depends on KINETIS_HAVE_I2C3
---help---
Support I2C3
config KINETIS_I2S
bool "I2S"
default n
---help---
Support I2S
config KINETIS_DAC0
bool "DAC0"
default n
---help---
Support DAC0
config KINETIS_DAC1
bool "DAC1"
default n
---help---
Support DAC1
config KINETIS_ADC0
bool "ADC0"
default n
---help---
Support ADC0
config KINETIS_ADC1
bool "ADC1"
default n
---help---
Support ADC1
config KINETIS_CMP
bool "CMP"
default n
---help---
Support CMP
config KINETIS_VREF
bool "VREF"
default n
---help---
Support VREF
config KINETIS_SDHC
bool "SDHC"
default n
select ARCH_HAVE_SDIO
---help---
Support SD host controller
config KINETIS_FTM0
bool "FTM0"
default n
---help---
Support FlexTimer 0
config KINETIS_FTM1
bool "FTM1"
default n
---help---
Support FlexTimer 1
config KINETIS_FTM2
bool "FTM2"
default n
---help---
Support FlexTimer 2
config KINETIS_FTM3
bool "FTM3"
default n
depends on KINETIS_HAVE_FTM3
---help---
Support FlexTimer 3
config KINETIS_TPM1
bool "TPM1"
default n
depends on KINETIS_HAVE_TPM1
---help---
Support TPM module 1
config KINETIS_TPM2
bool "TPM2"
default n
depends on KINETIS_HAVE_TPM2
---help---
Support TPM module 2
config KINETIS_LPTMR0
bool "Low power timer 0 (LPTMR0)"
default n
---help---
Support the low power timer 0
config KINETIS_LPTMR1
bool "Low power timer 0 (LPTMR1)"
default n
depends on KINETIS_HAVE_LPTMR1
---help---
Support the low power timer 1
config KINETIS_RTC
bool "RTC"
default n
---help---
Support RTC
config KINETIS_SLCD
bool "Segment LCD (SLCD)"
default n
depends on ARCH_FAMILY_K40
---help---
Support the segment LCD (K40 only)
config KINETIS_EWM
bool "External watchdog (WVM)"
default n
---help---
Support the external watchdog
config KINETIS_CMT
bool "Carrier modulator transmitter (CMT)"
default n
---help---
Support Carrier Modulator Transmitter
config KINETIS_USBHS
bool "USB HS"
default n
select USBHOST_HAVE_ASYNCH if USBHOST
select USBHOST_ASYNCH
---help---
Support USB HIGH SPEED (see also USBHOST and USBDEV)
config KINETIS_USBOTG
bool "USB OTG"
default n
---help---
Support USB OTG (see also USBHOST and USBDEV)
config KINETIS_USBDCD
bool "USB device controller"
default n
---help---
Support the USB Device Charger Detection module
config KINETIS_LLWU
bool "Low leakage wake-up unit (LLWU)"
default n
---help---
Support the Low Leakage Wake-Up Unit
config KINETIS_TSI
bool "Touchscreen interface (TSI)"
default n
---help---
Support the touch screeen interface
config KINETIS_FTFL
bool "FLASH (FTFL)"
default n
---help---
Support FLASH
config KINETIS_EDMA
bool "eDMA"
default n
depends on KINETIS_HAVE_DMA
select ARCH_DMA
---help---
Support DMA
config KINETIS_CRC
bool "CRC"
default n
---help---
Support CRC
config KINETIS_PDB
bool "Programmable delay block (PDB)"
default n
---help---
Support the Programmable Delay Block
config KINETIS_PIT
bool "Programmable interval timer (PIT)"
default n
---help---
Support Programmable Interval Timers
endmenu
menu "Kinetis FTM PWM Configuration"
depends on KINETIS_FTM0 || KINETIS_FTM1 || KINETIS_FTM2 || KINETIS_FTM3
config KINETIS_FTM0_PWM
bool "FTM0 PWM"
default n
depends on KINETIS_FTM0
---help---
Reserve timer 0 for use by PWM
Timer devices may be used for different purposes. One special
purpose is to generate modulated outputs for such things as motor
control. If KINETIS_FTM0 is defined then THIS following may also be
defined to indicate that the timer is intended to be used for pulsed
output modulation.
config KINETIS_FTM0_CHANNEL
int "FTM0 PWM Output Channel"
default 0
range 0 7
depends on KINETIS_FTM0_PWM
---help---
If FTM0 is enabled for PWM usage, you also need specifies the timer output
channel {0,..,7}
config KINETIS_FTM1_PWM
bool "FTM1 PWM"
default n
depends on KINETIS_FTM1
---help---
Reserve timer 1 for use by PWM
Timer devices may be used for different purposes. One special purpose is
to generate modulated outputs for such things as motor control. If KINETIS_FTM1
is defined then THIS following may also be defined to indicate that
the timer is intended to be used for pulsed output modulation.
config KINETIS_FTM1_CHANNEL
int "FTM1 PWM Output Channel"
default 0
range 0 1
depends on KINETIS_FTM1_PWM
---help---
If FTM1 is enabled for PWM usage, you also need specifies the timer output
channel {0,..,1}
config KINETIS_FTM2_PWM
bool "FTM2 PWM"
default n
depends on KINETIS_FTM2
---help---
Reserve timer 2 for use by PWM
Timer devices may be used for different purposes. One special purpose is
to generate modulated outputs for such things as motor control. If KINETIS_FTM2
is defined then THIS following may also be defined to indicate that
the timer is intended to be used for pulsed output modulation.
config KINETIS_FTM2_CHANNEL
int "FTM2 PWM Output Channel"
default 0
range 0 1
depends on KINETIS_FTM2_PWM
---help---
If FTM2 is enabled for PWM usage, you also need specifies the timer output
channel {0,..,1}
config KINETIS_FTM3_PWM
bool "FTM3 PWM"
default n
depends on KINETIS_FTM3
---help---
Reserve timer 3 for use by PWM
Timer devices may be used for different purposes. One special purpose is
to generate modulated outputs for such things as motor control. If KINETIS_FTM3
is defined then THIS following may also be defined to indicate that
the timer is intended to be used for pulsed output modulation.
config KINETIS_FTM3_CHANNEL
int "FTM3 PWM Output Channel"
default 0
range 0 7
depends on KINETIS_FTM3_PWM
---help---
If FTM3 is enabled for PWM usage, you also need specifies the timer output
channel {0,..,7}
endmenu # Kinetis FTM PWM Configuration
menu "Kinetis GPIO Interrupt Configuration"
config KINETIS_GPIOIRQ
bool "GPIO pin interrupts"
---help---
Enable support for interrupting GPIO pins
if KINETIS_GPIOIRQ
config KINETIS_PORTAINTS
bool "GPIOA interrupts"
---help---
Enable support for 32 interrupts from GPIO port A pins
config KINETIS_PORTBINTS
bool "GPIOB interrupts"
---help---
Enable support for 32 interrupts from GPIO port B pins
config KINETIS_PORTCINTS
bool "GPIOC interrupts"
---help---
Enable support for 32 interrupts from GPIO port C pins
config KINETIS_PORTDINTS
bool "GPIOD interrupts"
---help---
Enable support for 32 interrupts from GPIO port D pins
config KINETIS_PORTEINTS
bool "GPIOE interrupts"
---help---
Enable support for 32 interrupts from GPIO port E pins
endif
endmenu # Kinetis GPIO Interrupt Configuration
menu "Kinetis Ethernet Configuration"
depends on KINETIS_ENET
config KINETIS_ENETENHANCEDBD
bool "Use enhanced buffer descriptors"
default n
---help---
Use enhanced, 32-byte buffer descriptors
config KINETIS_ENETNETHIFS
int "Number of Ethernet interfaces"
default 1
---help---
Number of Ethernet interfaces supported by the hardware. Must be
one for now.
config KINETIS_ENETNRXBUFFERS
int "Number of Ethernet Rx buffers"
default 6
---help---
Number of Ethernet Rx buffers to use. The size of one buffer is
determined by NET_BUFSIZE
config KINETIS_ENETNTXBUFFERS
int "Number of Ethernet Tx buffers"
default 2
---help---
Number of Ethernet Tx buffers to use. The size of one buffer is
determined by NET_BUFSIZE
config KINETIS_ENETUSEMII
bool "Use MII interface"
default n
---help---
The the MII PHY interface. Default: Use RMII interface
config KINETIS_ENET_MDIOPULLUP
bool "MDIO pull-up"
default n
---help---
If there is no on-board pull-up resister on the MII/RMII MDIO line,
then this option may be selected in order to configure an internal
pull-up on MDIO.
config KINETIS_ENET_NORXER
bool "Suppress RXER"
default n
---help---
If selected, then the MII/RMII RXER output will be configured as a
GPIO and pulled low.
choice
prompt "RMII Clock Source"
default KINETIS_EMAC_RMIICLKEXTAL
depends on !KINETIS_ENETUSEMII && (ARCH_FAMILY_K64 || ARCH_FAMILY_K66)
---help---
The RMII clock can be selected between EXTAL or ENET_1588_CLKIN
config KINETIS_EMAC_RMIICLKEXTAL
bool "Use EXTAL for RMII Clock"
config KINETIS_EMAC_RMIICLK1588CLKIN
bool "Use ENET_1588_CLKIN for RMII Clock"
endchoice # RMII Clock Source
endmenu # Kinetis Ethernet Configuration
menu "Kinetis FLEXCAN0 Configuration"
depends on KINETIS_FLEXCAN0
config FLEXCAN0_BITRATE
int "CAN bitrate"
depends on !NET_CAN_CANFD
default 1000000
config FLEXCAN0_SAMPLEP
int "CAN sample point"
depends on !NET_CAN_CANFD
default 75
config FLEXCAN0_ARBI_BITRATE
int "CAN FD Arbitration phase bitrate"
depends on NET_CAN_CANFD
default 1000000
config FLEXCAN0_ARBI_SAMPLEP
int "CAN FD Arbitration phase sample point"
depends on NET_CAN_CANFD
default 80
config FLEXCAN0_DATA_BITRATE
int "CAN FD Arbitration phase bitrate"
depends on NET_CAN_CANFD
default 4000000
config FLEXCAN0_DATA_SAMPLEP
int "CAN FD Arbitration phase sample point"
depends on NET_CAN_CANFD
default 90
endmenu # KINETIS_FLEXCAN0
menu "Kinetis FLEXCAN1 Configuration"
depends on KINETIS_FLEXCAN1
config FLEXCAN1_BITRATE
int "CAN bitrate"
depends on !NET_CAN_CANFD
default 1000000
config FLEXCAN1_SAMPLEP
int "CAN sample point"
depends on !NET_CAN_CANFD
default 75
config FLEXCAN1_ARBI_BITRATE
int "CAN FD Arbitration phase bitrate"
depends on NET_CAN_CANFD
default 1000000
config FLEXCAN1_ARBI_SAMPLEP
int "CAN FD Arbitration phase sample point"
depends on NET_CAN_CANFD
default 80
config FLEXCAN1_DATA_BITRATE
int "CAN FD Arbitration phase bitrate"
depends on NET_CAN_CANFD
default 4000000
config FLEXCAN1_DATA_SAMPLEP
int "CAN FD Arbitration phase sample point"
depends on NET_CAN_CANFD
default 90
endmenu # KINETIS_FLEXCAN1
menu "Kinetis SDHC Configuration"
depends on KINETIS_SDHC
config KINETIS_SDHC_DMA
bool "Support DMA data transfers"
default y
select SDIO_DMA
---help---
Support DMA data transfers.
Enable SD card DMA data transfers. This is marginally optional.
For most usages, SD accesses will cause data overruns if used without
DMA.
config KINETIS_SDHC_PULLUP
bool "Enable internal Pull-Ups"
default n
---help---
If you are using an external SDCard module that does not have the
pull-up resistors for the SDIO interface (like the Gadgeteer SD Card
Module) then enable this option to activate the internal pull-up
resistors.
config KINETIS_SDHC_WIDTH_D1_ONLY
bool "Use D1 only"
default n
---help---
Select 1-bit transfer mode. Default: 4-bit transfer mode.
config KINETIS_SDHC_ABSFREQ
bool "Custom transfer frequencies"
default n
---help---
Select SDCLK frequencies corresponding to various modes of operation.
These values may be provided in either the NuttX configuration file
or in the board.h file
NOTE: These settings are not currently used. Since there are only
four frequencies, it makes more sense to just "can" the fixed
frequency prescaler and divider values.
if KINETIS_SDHC_ABSFREQ
config KINETIS_IDMODE_FREQ
int "ID mode frequency"
default 400000
---help---
Initial, ID mode SD frequency
config KINETIS_MMCXFR_FREQ
int "MMC transfer frequency"
default 20000000
---help---
Frequency to use for transferring data to/from an MMC card
config KINETIS_SD1BIT_FREQ
int "SD 1-bit transfer frequency"
default 20000000
depends on KINETIS_SDHC_WIDTH_D1_ONLY
---help---
Frequency to use for transferring data to/from an SD card using on a single data liune.
config KINETIS_SD4BIT_FREQ
int "SD 4-bit transfer frequency"
default 20000000
depends on !KINETIS_SDHC_WIDTH_D1_ONLY
---help---
Frequency to use for transferring data to/from an SD card using all four data lines.
endif
endmenu # Kinetis SDHC Configuration
menu "eDMA Configuration"
depends on KINETIS_EDMA
config KINETIS_EDMA_NTCD
int "Number of transfer descriptors"
default 0
---help---
Number of pre-allocated transfer descriptors. Needed for scatter-
gather DMA. Make to be set to zero to disable in-memory TCDs in
which case only the TCD channel registers will be used and scatter-
will not be supported.
config KINETIS_EDMA_ELINK
bool "Channeling Linking"
default n
---help---
This option enables optional minor or major loop channel linking:
Minor loop channel linking: As the channel completes the minor
loop, this flag enables linking to another channel. The link target
channel initiates a channel service request via an internal
mechanism that sets the TCDn_CSR[START] bit of the specified
channel.
If minor loop channel linking is disabled, this link mechanism is
suppressed in favor of the major loop channel linking.
Major loop channel linking: As the channel completes the minor
loop, this option enables the linking to another channel. The link
target channel initiates a channel service request via an internal
mechanism that sets the TCDn_CSR[START] bit of the linked channel.
config KINETIS_EDMA_ERCA
bool "Round Robin Channel Arbitration"
default n
---help---
Normally, a fixed priority arbitration is used for channel
selection. If this option is selected, round robin arbitration is
used for channel selection.
config KINETIS_EDMA_ERGA
bool "Round Robin Group Arbitration"
default n
---help---
Normally, a fixed priority arbitration is used for channel
selection among the groups. If this option is selected,
round Round robin arbitration is used for selection among
the groups.
config KINETIS_EDMA_HOE
bool "Halt On Error"
default y
---help---
Any error causes the HALT bit to set. Subsequently, all service
requests are ignored until the HALT bit is cleared.
config KINETIS_EDMA_CLM
bool "Continuous Link Mode"
default n
---help---
By default, A minor loop channel link made to itself goes through
channel arbitration before being activated again. If this option is
selected, a minor loop channel link made to itself does not go
through channel arbitration before being activated again. Upon minor
loop completion, the channel activates again if that channel has a
minor loop channel link enabled and the link channel is itself. This
effectively applies the minor loop offsets and restarts the next
minor loop.
config KINETIS_EDMA_EMLIM
bool "Minor Loop Mapping"
default n
---help---
Normally TCD word 2 is a 32-bit NBYTES field. When this option is
enabled, TCD word 2 is redefined to include individual enable fields,
an offset field, and the NBYTES field. The individual enable fields
allow the minor loop offset to be applied to the source address, the
destination address, or both. The NBYTES field is reduced when either
offset is enabled.
config KINETIS_EDMA_EDBG
bool "Enable Debug"
default n
---help---
When in debug mode, the DMA stalls the start of a new channel. Executing
channels are allowed to complete. Channel execution resumes when the
system exits debug mode or the EDBG bit is cleared
endmenu # eDMA Global Configuration
menu "Kinetis SPI Configuration"
depends on KINETIS_SPI && KINETIS_EDMA
config KINETIS_SPI_DMA
bool "SPI DMA"
depends on KINETIS_EDMA
default n
---help---
Use DMA to improve SPI transfer performance.
config KINETIS_SPI_DMATHRESHOLD
int "SPI DMA threshold"
default 4
depends on KINETIS_SPI_DMA
---help---
When SPI DMA is enabled, small DMA transfers will still be performed
by polling logic. But we need a threshold value to determine what
is small.
config KINETIS_SPI0_DMA
bool "SPI0 DMA"
default n
depends on KINETIS_SPI0 && KINETIS_SPI_DMA
---help---
Use DMA to improve SPI0 transfer performance.
config KINETIS_SPI1_DMA
bool "SPI1 DMA"
default n
depends on KINETIS_SPI1 && KINETIS_SPI_DMA
---help---
Use DMA to improve SPI1 transfer performance.
config KINETIS_SPI2_DMA
bool "SPI2 DMA"
default n
depends on KINETIS_SPI2 && KINETIS_SPI_DMA
---help---
Use DMA to improve SPI2 transfer performance.
endmenu # Kinetis SPI Configuration
if KINETIS_USBHS && USBHOST
menu "USB host controller driver (HCD) options"
config KINETIS_EHCI_NQHS
int "Number of Queue Head (QH) structures"
default 4
---help---
Configurable number of Queue Head (QH) structures.
config KINETIS_EHCI_NQTDS
int "Number of Queue Element Transfer Descriptor (qTDs)"
default 6
---help---
Configurable number of Queue Element Transfer Descriptor (qTDs).
config KINETIS_EHCI_BUFSIZE
int "Size of one request/descriptor buffer"
default 128
---help---
The size of one request/descriptor buffer in bytes. The TD buffe
size must be an even number of 32-bit words and must be large enough
to hangle the largest transfer via a SETUP request.
config KINETIS_EHCI_PREALLOCATE
bool "Preallocate descriptor pool"
default y
---help---
Select this option to pre-allocate EHCI queue and descriptor
structure pools in .bss. Otherwise, these pools will be
dynamically allocated using kmm_memalign().
endmenu # USB host controller driver (HCD) options
endif # KINETIS_USBHS && USBHOST
#
# MCU serial peripheral driver?
#
menu "Kinetis UART Configuration"
if KINETIS_SERIALDRIVER || OTHER_SERIALDRIVER
comment "Serial Driver Configuration"
config KINETIS_UART_BREAKS
bool "Add TIOxSBRK to support sending Breaks"
depends on KINETIS_UART || KINETIS_LPUART
default n
---help---
Add TIOCxBRK routines to send a line break per the Kinetis manual, the
break will be a pulse based on the value M. This is not a BSD compatible
break.
config KINETIS_UART_EXTEDED_BREAK
bool "Selects a longer transmitted break character length"
depends on KINETIS_UART_BREAKS
default n
---help---
Sets BRK13 to send a longer transmitted break character.
config KINETIS_SERIALBRK_BSDCOMPAT
bool "BSD compatible break the break asserted until released"
depends on (KINETIS_UART || KINETIS_LPUART) && KINETIS_UART_BREAKS
default n
---help---
Enable using a BSD compatible break: TIOCSBRK will start the break
and TIOCCBRK will end the break.
config KINETIS_UART_SINGLEWIRE
bool "Single Wire Support"
default n
depends on KINETIS_UART || KINETIS_LPUART
---help---
Enable single wire UART and LPUART support. The option enables support
for the TIOCSSINGLEWIRE ioctl in the Kinetis serial drivers.
config KINETIS_UART_INVERT
bool "Signal Invert Support"
default n
depends on KINETIS_UART || KINETIS_LPUART
---help---
Enable signal inversion UART support. The option enables support for the
TIOCSINVERT ioctl in the Kinetis serial driver.
endif # KINETIS_SERIALDRIVER || OTHER_SERIALDRIVER
config KINETIS_UARTFIFOS
bool "Enable UART0 FIFO"
default n
depends on KINETIS_UART0
config KINETIS_UART0_RXDMA
bool "UART0 Rx DMA"
default n
depends on KINETIS_UART0 && KINETIS_EDMA
---help---
In high data rate usage, Rx DMA may eliminate Rx overrun errors
config KINETIS_UART1_RXDMA
bool "UART1 Rx DMA"
default n
depends on KINETIS_UART1 && KINETIS_EDMA
---help---
In high data rate usage, Rx DMA may eliminate Rx overrun errors
config KINETIS_UART2_RXDMA
bool "UART2 Rx DMA"
default n
depends on KINETIS_UART2 && KINETIS_EDMA
---help---
In high data rate usage, Rx DMA may eliminate Rx overrun errors
config KINETIS_UART3_RXDMA
bool "UART3 Rx DMA"
default n
depends on KINETIS_UART3 && KINETIS_EDMA
---help---
In high data rate usage, Rx DMA may eliminate Rx overrun errors
config KINETIS_UART4_RXDMA
bool "UART4 Rx DMA"
default n
depends on KINETIS_UART4 && KINETIS_EDMA
---help---
In high data rate usage, Rx DMA may eliminate Rx overrun errors
config KINETIS_UART5_RXDMA
bool "UART5 Rx DMA"
default n
depends on KINETIS_UART5 && KINETIS_EDMA
---help---
In high data rate usage, Rx DMA may eliminate Rx overrun errors
config KINETIS_SERIAL_RXDMA_BUFFER_SIZE
int "Rx DMA buffer size"
default 32
depends on UART1_RXDMA || UART2_RXDMA || UART3_RXDMA || UART4_RXDMA || UART5_RXDMA
---help---
The DMA buffer size when using RX DMA to emulate a FIFO.
When streaming data, the generic serial layer will be called
every time the FIFO receives half this number of bytes.
Value given here will be rounded up to next multiple of 32 bytes.
endmenu # Kinetis UART Configuration
menu "Kinetis LPUART Configuration"
if KINETIS_SERIALDRIVER || OTHER_SERIALDRIVER
comment "LP Uart Driver Configuration"
config KINETIS_LPUART0_RXDMA
bool "LPUART0 Rx DMA"
default n
depends on KINETIS_LPUART0 && KINETIS_EDMA
---help---
In high data rate usage, Rx DMA may eliminate Rx overrun errors
config KINETIS_LPUART1_RXDMA
bool "LPUART1 Rx DMA"
default n
depends on KINETIS_LPUART1 && KINETIS_EDMA
---help---
In high data rate usage, Rx DMA may eliminate Rx overrun errors
config KINETIS_LPUART2_RXDMA
bool "LPUART2 Rx DMA"
default n
depends on KINETIS_LPUART2 && KINETIS_EDMA
---help---
In high data rate usage, Rx DMA may eliminate Rx overrun errors
config KINETIS_LPUART3_RXDMA
bool "LPUART3 Rx DMA"
default n
depends on KINETIS_LPUART3 && KINETIS_EDMA
---help---
In high data rate usage, Rx DMA may eliminate Rx overrun errors
config KINETIS_LPUART4_RXDMA
bool "LPUART4 Rx DMA"
default n
depends on KINETIS_LPUART4 && KINETIS_EDMA
---help---
In high data rate usage, Rx DMA may eliminate Rx overrun errors
config KINETIS_LPUART_RXDMA_BUFFER_SIZE
int "Rx DMA buffer size"
default 32
depends on KINETIS_LPUART0_RXDMA || KINETIS_LPUART1_RXDMA || KINETIS_LPUART2_RXDMA || KINETIS_LPUART3_RXDMA || KINETIS_LPUART4_RXDMA
---help---
The DMA buffer size when using RX DMA to emulate a FIFO.
When streaming data, the generic serial layer will be called
every time the FIFO receives half this number of bytes.
Value given here will be rounded up to next multiple of 32 bytes.
endif # KINETIS_SERIALDRIVER || OTHER_SERIALDRIVER
endmenu # Kinetis LPUART Configuration
config KINETIS_MERGE_TTY
bool "Kinetis Merge TTY names for LPUARTS"
default n
depends on KINETIS_LPUART
---help---
Enable the merging of the TTY names when both LPUARTs and UARTs
are defined. When enabled, all both LPUARTS and UART types will be
listed as dev/ttySn. When disabled, LPUARTS willbe listed as
/dev/ttyLPn and UARTs as /dev/ttySn see also (KINETS_LPUART_LOWEST)
config KINETS_LPUART_LOWEST
bool "Kinetis Order ttySn LPUARTs before UARTS"
default n
depends on KINETIS_LPUART && KINETIS_UART
depends on KINETIS_MERGE_TTY
---help---
Used with KINETIS_MERGE_TTY, will set the order of ttySn assignments
Enabled will order the LPUART's before the UARTS.