Skip to content

Commit 19d1319

Browse files
committed
Initial K20 fixes
Added the required gpio-irq enable/disable + fixed bus_frequency
1 parent fc0a2cf commit 19d1319

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

libraries/mbed/targets/hal/TARGET_Freescale/TARGET_K20D5M/clk_freqs.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ extern "C" {
2525
* \return Bus frequency
2626
*/
2727
static inline uint32_t bus_frequency(void) {
28-
return SystemCoreClock / (((SIM->CLKDIV1 & SIM_CLKDIV1_OUTDIV4_MASK) >> SIM_CLKDIV1_OUTDIV4_SHIFT) + 1);
28+
return SystemCoreClock / (((SIM->CLKDIV1 & SIM_CLKDIV1_OUTDIV2_MASK) >> SIM_CLKDIV1_OUTDIV2_SHIFT) + 1);
2929
}
3030

3131
/*!

libraries/mbed/targets/hal/TARGET_Freescale/TARGET_K20D5M/gpio_irq_api.c

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,3 +165,43 @@ void gpio_irq_set(gpio_irq_t *obj, gpio_irq_event event, uint32_t enable) {
165165
// Interrupt configuration and clear interrupt
166166
port->PCR[obj->pin] = (port->PCR[obj->pin] & ~PORT_PCR_IRQC_MASK) | irq_settings | PORT_PCR_ISF_MASK;
167167
}
168+
169+
void gpio_irq_enable(gpio_irq_t *obj) {
170+
switch (obj->port) {
171+
case PortA:
172+
NVIC_EnableIRQ(PORTA_IRQn);
173+
break;
174+
case PortB:
175+
NVIC_EnableIRQ(PORTB_IRQn);
176+
break;
177+
case PortC:
178+
NVIC_EnableIRQ(PORTC_IRQn);
179+
break;
180+
case PortD:
181+
NVIC_EnableIRQ(PORTD_IRQn);
182+
break;
183+
case PortE:
184+
NVIC_EnableIRQ(PORTE_IRQn);
185+
break;
186+
}
187+
}
188+
189+
void gpio_irq_disable(gpio_irq_t *obj) {
190+
switch (obj->port) {
191+
case PortA:
192+
NVIC_DisableIRQ(PORTA_IRQn);
193+
break;
194+
case PortB:
195+
NVIC_DisableIRQ(PORTB_IRQn);
196+
break;
197+
case PortC:
198+
NVIC_DisableIRQ(PORTC_IRQn);
199+
break;
200+
case PortD:
201+
NVIC_DisableIRQ(PORTD_IRQn);
202+
break;
203+
case PortE:
204+
NVIC_DisableIRQ(PORTE_IRQn);
205+
break;
206+
}
207+
}

0 commit comments

Comments
 (0)