shared_irq: move IOAPIC interrupt trigger flags into driver
Move the common #define for IOAPIC interrupt trigger flags out of platform board.h and into the driver. Change-Id: Ie7262b69226ebffa7e1b9e35725fda24b3fe089f Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This commit is contained in:
parent
66b99d9cc1
commit
8effb4fed3
2 changed files with 36 additions and 28 deletions
|
@ -66,34 +66,6 @@
|
||||||
#endif
|
#endif
|
||||||
#endif /* CONFIG_SPI_INTEL */
|
#endif /* CONFIG_SPI_INTEL */
|
||||||
|
|
||||||
#if defined (CONFIG_SHARED_IRQ) && defined (CONFIG_IOAPIC)
|
|
||||||
|
|
||||||
#if CONFIG_SHARED_IRQ_0
|
|
||||||
#if defined(CONFIG_SHARED_IRQ_0_FALLING_EDGE)
|
|
||||||
#define SHARED_IRQ_0_FLAGS (IOAPIC_EDGE | IOAPIC_LOW)
|
|
||||||
#elif defined(CONFIG_SHARED_IRQ_0_RISING_EDGE)
|
|
||||||
#define SHARED_IRQ_0_FLAGS (IOAPIC_EDGE | IOAPIC_HIGH)
|
|
||||||
#elif defined(CONFIG_SHARED_IRQ_0_LEVEL_HIGH)
|
|
||||||
#define SHARED_IRQ_0_FLAGS (IOAPIC_LEVEL | IOAPIC_HIGH)
|
|
||||||
#elif defined(CONFIG_SHARED_IRQ_0_LEVEL_LOW)
|
|
||||||
#define SHARED_IRQ_0_FLAGS (IOAPIC_LEVEL | IOAPIC_LOW)
|
|
||||||
#endif
|
|
||||||
#endif /* CONFIG_SHARED_IRQ_0 */
|
|
||||||
|
|
||||||
#if CONFIG_SHARED_IRQ_1
|
|
||||||
#if defined(CONFIG_SHARED_IRQ_1_FALLING_EDGE)
|
|
||||||
#define SHARED_IRQ_1_FLAGS (IOAPIC_EDGE | IOAPIC_LOW)
|
|
||||||
#elif defined(CONFIG_SHARED_IRQ_1_RISING_EDGE)
|
|
||||||
#define SHARED_IRQ_1_FLAGS (IOAPIC_EDGE | IOAPIC_HIGH)
|
|
||||||
#elif defined(CONFIG_SHARED_IRQ_1_LEVEL_HIGH)
|
|
||||||
#define SHARED_IRQ_1_FLAGS (IOAPIC_LEVEL | IOAPIC_HIGH)
|
|
||||||
#elif defined(CONFIG_SHARED_IRQ_1_LEVEL_LOW)
|
|
||||||
#define SHARED_IRQ_1_FLAGS (IOAPIC_LEVEL | IOAPIC_LOW)
|
|
||||||
#endif
|
|
||||||
#endif /* CONFIG_SHARED_IRQ_1 */
|
|
||||||
|
|
||||||
#endif /* CONFIG_SHARED_IRQ && CONFIG_IOAPIC */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The irq_connect() API connects to a (virtualized) IRQ and the
|
* The irq_connect() API connects to a (virtualized) IRQ and the
|
||||||
* associated interrupt controller is programmed with the allocated vector.
|
* associated interrupt controller is programmed with the allocated vector.
|
||||||
|
|
|
@ -21,6 +21,10 @@
|
||||||
#include <board.h>
|
#include <board.h>
|
||||||
#include <sys_io.h>
|
#include <sys_io.h>
|
||||||
|
|
||||||
|
#ifdef CONFIG_IOAPIC
|
||||||
|
#include <drivers/ioapic.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Register a device ISR
|
* @brief Register a device ISR
|
||||||
* @param dev Pointer to device structure for SHARED_IRQ driver instance.
|
* @param dev Pointer to device structure for SHARED_IRQ driver instance.
|
||||||
|
@ -145,6 +149,22 @@ DECLARE_DEVICE_INIT_CONFIG(shared_irq_0, CONFIG_SHARED_IRQ_0_NAME,
|
||||||
SYS_DEFINE_DEVICE(shared_irq_0, &shared_irq_0_runtime, SECONDARY,
|
SYS_DEFINE_DEVICE(shared_irq_0, &shared_irq_0_runtime, SECONDARY,
|
||||||
CONFIG_SHARED_IRQ_INIT_PRIORITY);
|
CONFIG_SHARED_IRQ_INIT_PRIORITY);
|
||||||
|
|
||||||
|
#if defined(CONFIG_IOAPIC)
|
||||||
|
#if defined(CONFIG_SHARED_IRQ_0)
|
||||||
|
#if defined(CONFIG_SHARED_IRQ_0_FALLING_EDGE)
|
||||||
|
#define SHARED_IRQ_0_FLAGS (IOAPIC_EDGE | IOAPIC_LOW)
|
||||||
|
#elif defined(CONFIG_SHARED_IRQ_0_RISING_EDGE)
|
||||||
|
#define SHARED_IRQ_0_FLAGS (IOAPIC_EDGE | IOAPIC_HIGH)
|
||||||
|
#elif defined(CONFIG_SHARED_IRQ_0_LEVEL_HIGH)
|
||||||
|
#define SHARED_IRQ_0_FLAGS (IOAPIC_LEVEL | IOAPIC_HIGH)
|
||||||
|
#elif defined(CONFIG_SHARED_IRQ_0_LEVEL_LOW)
|
||||||
|
#define SHARED_IRQ_0_FLAGS (IOAPIC_LEVEL | IOAPIC_LOW)
|
||||||
|
#endif
|
||||||
|
#endif /* CONFIG_SHARED_IRQ_0 */
|
||||||
|
#else
|
||||||
|
#define SHARED_IRQ_0_FLAGS 0
|
||||||
|
#endif /* CONFIG_IOAPIC */
|
||||||
|
|
||||||
IRQ_CONNECT_STATIC(shared_irq_0, CONFIG_SHARED_IRQ_0_IRQ,
|
IRQ_CONNECT_STATIC(shared_irq_0, CONFIG_SHARED_IRQ_0_IRQ,
|
||||||
CONFIG_SHARED_IRQ_0_PRI, shared_irq_isr_0, 0,
|
CONFIG_SHARED_IRQ_0_PRI, shared_irq_isr_0, 0,
|
||||||
SHARED_IRQ_0_FLAGS);
|
SHARED_IRQ_0_FLAGS);
|
||||||
|
@ -179,6 +199,22 @@ DECLARE_DEVICE_INIT_CONFIG(shared_irq_1, CONFIG_SHARED_IRQ_1_NAME,
|
||||||
SYS_DEFINE_DEVICE(shared_irq_1, &shared_irq_1_runtime, SECONDARY,
|
SYS_DEFINE_DEVICE(shared_irq_1, &shared_irq_1_runtime, SECONDARY,
|
||||||
CONFIG_SHARED_IRQ_INIT_PRIORITY);
|
CONFIG_SHARED_IRQ_INIT_PRIORITY);
|
||||||
|
|
||||||
|
#if defined(CONFIG_IOAPIC)
|
||||||
|
#if defined(CONFIG_SHARED_IRQ_1)
|
||||||
|
#if defined(CONFIG_SHARED_IRQ_1_FALLING_EDGE)
|
||||||
|
#define SHARED_IRQ_1_FLAGS (IOAPIC_EDGE | IOAPIC_LOW)
|
||||||
|
#elif defined(CONFIG_SHARED_IRQ_1_RISING_EDGE)
|
||||||
|
#define SHARED_IRQ_1_FLAGS (IOAPIC_EDGE | IOAPIC_HIGH)
|
||||||
|
#elif defined(CONFIG_SHARED_IRQ_1_LEVEL_HIGH)
|
||||||
|
#define SHARED_IRQ_1_FLAGS (IOAPIC_LEVEL | IOAPIC_HIGH)
|
||||||
|
#elif defined(CONFIG_SHARED_IRQ_1_LEVEL_LOW)
|
||||||
|
#define SHARED_IRQ_1_FLAGS (IOAPIC_LEVEL | IOAPIC_LOW)
|
||||||
|
#endif
|
||||||
|
#endif /* CONFIG_SHARED_IRQ_1 */
|
||||||
|
#else
|
||||||
|
#define SHARED_IRQ_1_FLAGS 0
|
||||||
|
#endif /* CONFIG_IOAPIC */
|
||||||
|
|
||||||
IRQ_CONNECT_STATIC(shared_irq_1, CONFIG_SHARED_IRQ_1_IRQ,
|
IRQ_CONNECT_STATIC(shared_irq_1, CONFIG_SHARED_IRQ_1_IRQ,
|
||||||
CONFIG_SHARED_IRQ_1_PRI, shared_irq_isr_1, 0,
|
CONFIG_SHARED_IRQ_1_PRI, shared_irq_isr_1, 0,
|
||||||
SHARED_IRQ_1_FLAGS);
|
SHARED_IRQ_1_FLAGS);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue