Skip to content
Snippets Groups Projects
Commit 68ea6b33 authored by Joakim Nohlgård's avatar Joakim Nohlgård
Browse files

kinetis: Add support for NXP Kinetis KW41Z SoC

parent 6dbc8d7e
No related branches found
No related tags found
No related merge requests found
......@@ -63,7 +63,18 @@
#elif defined(KINETIS_CORE_Z)
/* Kinetis KWxxZ */
/* TODO */
#if defined(CPU_MODEL_MKW21Z256VHT4) || \
defined(CPU_MODEL_MKW21Z512VHT4)
#include "vendor/MKW21Z4.h"
#elif defined(CPU_MODEL_MKW31Z256VHT4) || \
defined(CPU_MODEL_MKW31Z512CAT4) || \
defined(CPU_MODEL_MKW31Z512VHT4)
#include "vendor/MKW31Z4.h"
#elif defined(CPU_MODEL_MKW41Z256VHT4) || \
defined(CPU_MODEL_MKW41Z512CAT4) || \
defined(CPU_MODEL_MKW41Z512VHT4)
#include "vendor/MKW41Z4.h"
#endif
#endif /* KINETIS_CORE_x */
#ifdef __cplusplus
......
......@@ -121,6 +121,7 @@ void isr_lvd_lvw(void); /**< PMC controller low-voltage detect, low-voltage
void isr_mcg(void); /**< MCG interrupt handler */
void isr_mcm(void); /**< MCM normal interrupt handler */
void isr_pdb0(void); /**< PDB0 interrupt handler */
void isr_pit(void); /**< PIT any channel interrupt handler */
void isr_pit0(void); /**< PIT timer channel 0 interrupt handler */
void isr_pit1(void); /**< PIT timer channel 1 interrupt handler */
void isr_pit2(void); /**< PIT timer channel 2 interrupt handler */
......@@ -130,6 +131,9 @@ void isr_portb(void); /**< Port B pin detect interrupt handler */
void isr_portc(void); /**< Port C pin detect interrupt handler */
void isr_portd(void); /**< Port D pin detect interrupt handler */
void isr_porte(void); /**< Port E pin detect interrupt handler */
void isr_portb_portc(void); /**< Port B, C combined pin detect interrupt handler */
void isr_radio_0(void); /**< Radio transceiver INT0 interrupt handler */
void isr_radio_1(void); /**< Radio transceiver INT1 interrupt handler */
void isr_rng(void); /**< RNG interrupt handler */
void isr_rtc(void); /**< RTC interrupt handler */
void isr_rtc_seconds(void); /**< RTC seconds interrupt handler */
......@@ -141,6 +145,7 @@ void isr_swi(void); /**< Software interrupt handler */
void isr_tpm0(void); /**< TPM0 interrupt handler */
void isr_tpm1(void); /**< TPM1 interrupt handler */
void isr_tpm2(void); /**< TPM2 interrupt handler */
void isr_trng0(void); /**< TRNG0 interrupt handler */
void isr_tsi0(void); /**< TSI0 interrupt handler */
void isr_uart0_err(void); /**< UART0 error interrupt handler */
void isr_uart0_lon(void); /**< UART0 LON interrupt handler */
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -179,6 +179,9 @@ WEAK_DEFAULT void isr_portb(void);
WEAK_DEFAULT void isr_portc(void);
WEAK_DEFAULT void isr_portd(void);
WEAK_DEFAULT void isr_porte(void);
WEAK_DEFAULT void isr_portb_portc(void);
WEAK_DEFAULT void isr_radio_0(void);
WEAK_DEFAULT void isr_radio_1(void);
WEAK_DEFAULT void isr_rng(void);
WEAK_DEFAULT void isr_rtc(void);
WEAK_DEFAULT void isr_rtc_seconds(void);
......@@ -191,6 +194,7 @@ WEAK_DEFAULT void isr_tpm0(void);
WEAK_DEFAULT void isr_tpm1(void);
WEAK_DEFAULT void isr_tpm2(void);
WEAK_DEFAULT void isr_tsi0(void);
WEAK_DEFAULT void isr_trng0(void);
WEAK_DEFAULT void isr_uart0_err(void);
WEAK_DEFAULT void isr_uart0_lon(void);
WEAK_DEFAULT void isr_uart0_rx_tx(void);
......
......@@ -38,6 +38,7 @@
#define FTFL_Collision_IRQn Read_Collision_IRQn
#define PMC_IRQn LVD_LVW_IRQn
#define Watchdog_IRQn WDOG_EWM_IRQn
#define LVD_LVW_DCDC_IRQn LVD_LVW_IRQn
#include "vectors_kinetis.h"
......@@ -125,21 +126,29 @@ ISR_VECTOR(1) const isr_t vector_cpu[CPU_IRQ_NUMOF] = {
#elif defined(DMA_INT_INT15_MASK)
[DMA15_IRQn ] = isr_dma15, /* DMA Channel 15 Transfer Complete */
#endif
#ifndef KINETIS_CORE_Z
[DMA_Error_IRQn ] = isr_dma_error, /* DMA Error Interrupt */
#endif
#endif /* defined(DMA0) */
#ifdef MCM
#if defined(MCM) && !defined(KINETIS_CORE_Z)
[MCM_IRQn ] = isr_mcm, /* Normal Interrupt */
#endif
#if defined(FTFA)
[FTFA_IRQn ] = isr_ftfa, /* FTFA command complete */
#ifndef KINETIS_CORE_Z
[FTFA_Collision_IRQn] = isr_ftfa_collision, /* FTFA read collision */
#endif
#elif defined(FTFE)
[FTFE_IRQn ] = isr_ftfe, /* FTFE command complete */
#ifndef KINETIS_CORE_Z
[FTFE_Collision_IRQn] = isr_ftfe_collision, /* FTFE read collision */
#endif
#elif defined(FTFL)
[FTFL_IRQn ] = isr_ftfl, /* FTFL command complete */
#ifndef KINETIS_CORE_Z
[FTFL_Collision_IRQn] = isr_ftfl_collision, /* FTFL read collision */
#endif
#endif
#ifdef PMC
[LVD_LVW_IRQn ] = isr_lvd_lvw, /* Low Voltage Detect, Low Voltage Warning */
#endif
......@@ -245,11 +254,15 @@ ISR_VECTOR(1) const isr_t vector_cpu[CPU_IRQ_NUMOF] = {
[RTC_Seconds_IRQn] = isr_rtc_seconds, /* RTC seconds interrupt */
#endif
#ifdef PIT
#ifdef KINETIS_CORE_Z
[PIT_IRQn ] = isr_pit, /* PIT any channel interrupt */
#else
[PIT0_IRQn ] = isr_pit0, /* PIT timer channel 0 interrupt */
[PIT1_IRQn ] = isr_pit1, /* PIT timer channel 1 interrupt */
[PIT2_IRQn ] = isr_pit2, /* PIT timer channel 2 interrupt */
[PIT3_IRQn ] = isr_pit3, /* PIT timer channel 3 interrupt */
#endif
#endif /* defined(PIT) */
#ifdef PDB0
[PDB0_IRQn ] = isr_pdb0, /* PDB0 Interrupt */
#endif
......@@ -274,6 +287,11 @@ ISR_VECTOR(1) const isr_t vector_cpu[CPU_IRQ_NUMOF] = {
#ifdef PORTA
[PORTA_IRQn ] = isr_porta, /* Port A interrupt */
#endif
#ifdef KINETIS_CORE_Z
#if defined(PORTB) && defined(PORTC)
[PORTB_PORTC_IRQn] = isr_portb_portc, /* Port B, C combined interrupt */
#endif
#else
#ifdef PORTB
[PORTB_IRQn ] = isr_portb, /* Port B interrupt */
#endif
......@@ -286,6 +304,7 @@ ISR_VECTOR(1) const isr_t vector_cpu[CPU_IRQ_NUMOF] = {
#ifdef PORTE
[PORTE_IRQn ] = isr_porte, /* Port E interrupt */
#endif
#endif
#if __CORTEX_M >= 3
[SWI_IRQn ] = isr_swi, /* Software interrupt */
#endif
......@@ -350,6 +369,12 @@ ISR_VECTOR(1) const isr_t vector_cpu[CPU_IRQ_NUMOF] = {
#ifdef USBHS
[USBHS_IRQn ] = isr_usbhs, /* USB high speed OTG interrupt */
#endif
#ifdef BTLE_RF
[Radio_0_IRQn ] = isr_radio_0, /* Radio INT0 interrupt */
#endif
#ifdef ZLL
[Radio_1_IRQn ] = isr_radio_1, /* Radio INT1 interrupt */
#endif
};
/** @} */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment