mirror of https://github.com/ARMmbed/mbed-os.git
Initial K20 fixes
Added the required gpio-irq enable/disable + fixed bus_frequencypull/264/head
parent
fc0a2cf35e
commit
19d131973c
|
@ -25,7 +25,7 @@ extern "C" {
|
||||||
* \return Bus frequency
|
* \return Bus frequency
|
||||||
*/
|
*/
|
||||||
static inline uint32_t bus_frequency(void) {
|
static inline uint32_t bus_frequency(void) {
|
||||||
return SystemCoreClock / (((SIM->CLKDIV1 & SIM_CLKDIV1_OUTDIV4_MASK) >> SIM_CLKDIV1_OUTDIV4_SHIFT) + 1);
|
return SystemCoreClock / (((SIM->CLKDIV1 & SIM_CLKDIV1_OUTDIV2_MASK) >> SIM_CLKDIV1_OUTDIV2_SHIFT) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
|
@ -165,3 +165,43 @@ void gpio_irq_set(gpio_irq_t *obj, gpio_irq_event event, uint32_t enable) {
|
||||||
// Interrupt configuration and clear interrupt
|
// Interrupt configuration and clear interrupt
|
||||||
port->PCR[obj->pin] = (port->PCR[obj->pin] & ~PORT_PCR_IRQC_MASK) | irq_settings | PORT_PCR_ISF_MASK;
|
port->PCR[obj->pin] = (port->PCR[obj->pin] & ~PORT_PCR_IRQC_MASK) | irq_settings | PORT_PCR_ISF_MASK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void gpio_irq_enable(gpio_irq_t *obj) {
|
||||||
|
switch (obj->port) {
|
||||||
|
case PortA:
|
||||||
|
NVIC_EnableIRQ(PORTA_IRQn);
|
||||||
|
break;
|
||||||
|
case PortB:
|
||||||
|
NVIC_EnableIRQ(PORTB_IRQn);
|
||||||
|
break;
|
||||||
|
case PortC:
|
||||||
|
NVIC_EnableIRQ(PORTC_IRQn);
|
||||||
|
break;
|
||||||
|
case PortD:
|
||||||
|
NVIC_EnableIRQ(PORTD_IRQn);
|
||||||
|
break;
|
||||||
|
case PortE:
|
||||||
|
NVIC_EnableIRQ(PORTE_IRQn);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void gpio_irq_disable(gpio_irq_t *obj) {
|
||||||
|
switch (obj->port) {
|
||||||
|
case PortA:
|
||||||
|
NVIC_DisableIRQ(PORTA_IRQn);
|
||||||
|
break;
|
||||||
|
case PortB:
|
||||||
|
NVIC_DisableIRQ(PORTB_IRQn);
|
||||||
|
break;
|
||||||
|
case PortC:
|
||||||
|
NVIC_DisableIRQ(PORTC_IRQn);
|
||||||
|
break;
|
||||||
|
case PortD:
|
||||||
|
NVIC_DisableIRQ(PORTD_IRQn);
|
||||||
|
break;
|
||||||
|
case PortE:
|
||||||
|
NVIC_DisableIRQ(PORTE_IRQn);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue