From c71dddb2c276e4a54356afe4f02a73efbf91dc59 Mon Sep 17 00:00:00 2001 From: Daniel Leung Date: Thu, 10 Dec 2015 09:52:56 -0800 Subject: [PATCH] spi: dw: intel: 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: I89090181acb5f48dd797e7773ab65c5f3d46c42a Signed-off-by: Daniel Leung --- arch/x86/platforms/galileo/board.h | 12 ------------ arch/x86/platforms/ia32_pci/board.h | 12 ------------ arch/x86/platforms/quark_se/board.h | 13 ------------- drivers/spi/dw_spi.c | 18 ++++++++++++++++++ drivers/spi/intel_spi.c | 18 ++++++++++++++++++ 5 files changed, 36 insertions(+), 37 deletions(-) diff --git a/arch/x86/platforms/galileo/board.h b/arch/x86/platforms/galileo/board.h index 2cc9578657f..049ef54426d 100644 --- a/arch/x86/platforms/galileo/board.h +++ b/arch/x86/platforms/galileo/board.h @@ -54,18 +54,6 @@ #define NUM_STD_IRQS 16 /* number of "standard" IRQs on an x86 platform */ #define INT_VEC_IRQ0 0x20 /* Vector number for IRQ0 */ -#ifdef CONFIG_SPI_INTEL -#if defined(CONFIG_SPI_INTEL_FALLING_EDGE) -#define SPI_INTEL_IRQ_FLAGS (IOAPIC_EDGE | IOAPIC_LOW) -#elif defined(CONFIG_SPI_INTEL_RISING_EDGE) -#define SPI_INTEL_IRQ_FLAGS (IOAPIC_EDGE | IOAPIC_HIGH) -#elif defined(CONFIG_SPI_INTEL_LEVEL_HIGH) -#define SPI_INTEL_IRQ_FLAGS (IOAPIC_LEVEL | IOAPIC_HIGH) -#elif defined(CONFIG_SPI_INTEL_LEVEL_LOW) -#define SPI_INTEL_IRQ_FLAGS (IOAPIC_LEVEL | IOAPIC_LOW) -#endif -#endif /* CONFIG_SPI_INTEL */ - /* * The irq_connect() API connects to a (virtualized) IRQ and the * associated interrupt controller is programmed with the allocated vector. diff --git a/arch/x86/platforms/ia32_pci/board.h b/arch/x86/platforms/ia32_pci/board.h index 3690b484cb4..8de580e8ce5 100644 --- a/arch/x86/platforms/ia32_pci/board.h +++ b/arch/x86/platforms/ia32_pci/board.h @@ -54,18 +54,6 @@ #define NUM_STD_IRQS 16 /* number of "standard" IRQs on an x86 platform */ #define INT_VEC_IRQ0 0x20 /* Vector number for IRQ0 */ -#ifdef CONFIG_SPI_INTEL -#if defined(CONFIG_SPI_INTEL_FALLING_EDGE) -#define SPI_INTEL_IRQ_FLAGS (IOAPIC_EDGE | IOAPIC_LOW) -#elif defined(CONFIG_SPI_INTEL_RISING_EDGE) -#define SPI_INTEL_IRQ_FLAGS (IOAPIC_EDGE | IOAPIC_HIGH) -#elif defined(CONFIG_SPI_INTEL_LEVEL_HIGH) -#define SPI_INTEL_IRQ_FLAGS (IOAPIC_LEVEL | IOAPIC_HIGH) -#elif defined(CONFIG_SPI_INTEL_LEVEL_LOW) -#define SPI_INTEL_IRQ_FLAGS (IOAPIC_LEVEL | IOAPIC_LOW) -#endif -#endif /* CONFIG_SPI_INTEL */ - /* * The irq_connect() API connects to a (virtualized) IRQ and the * associated interrupt controller is programmed with the allocated vector. diff --git a/arch/x86/platforms/quark_se/board.h b/arch/x86/platforms/quark_se/board.h index 4b9f9fb4d56..00098dcf7c0 100644 --- a/arch/x86/platforms/quark_se/board.h +++ b/arch/x86/platforms/quark_se/board.h @@ -53,19 +53,6 @@ #endif #endif - -#ifdef CONFIG_SPI_DW -#if defined(CONFIG_SPI_DW_FALLING_EDGE) -#define SPI_DW_IRQ_FLAGS (IOAPIC_EDGE | IOAPIC_LOW) -#elif defined(CONFIG_SPI_DW_RISING_EDGE) -#define SPI_DW_IRQ_FLAGS (IOAPIC_EDGE | IOAPIC_HIGH) -#elif defined(CONFIG_SPI_DW_LEVEL_HIGH) -#define SPI_DW_IRQ_FLAGS (IOAPIC_LEVEL | IOAPIC_HIGH) -#elif defined(CONFIG_SPI_DW_LEVEL_LOW) -#define SPI_DW_IRQ_FLAGS (IOAPIC_LEVEL | IOAPIC_LOW) -#endif -#endif /* CONFIG_SPI_DW */ - /* serial port (aka COM port) information */ #ifdef CONFIG_UART_NS16550 diff --git a/drivers/spi/dw_spi.c b/drivers/spi/dw_spi.c index 911f12690e5..11180cf8a0c 100644 --- a/drivers/spi/dw_spi.c +++ b/drivers/spi/dw_spi.c @@ -31,6 +31,10 @@ #include #include +#ifdef CONFIG_IOAPIC +#include +#endif + #ifndef CONFIG_SPI_DEBUG #define DBG(...) {; } #else @@ -440,6 +444,20 @@ int spi_dw_init(struct device *dev) return DEV_OK; } +#ifdef CONFIG_IOAPIC + #if defined(CONFIG_SPI_DW_FALLING_EDGE) + #define SPI_DW_IRQ_FLAGS (IOAPIC_EDGE | IOAPIC_LOW) + #elif defined(CONFIG_SPI_DW_RISING_EDGE) + #define SPI_DW_IRQ_FLAGS (IOAPIC_EDGE | IOAPIC_HIGH) + #elif defined(CONFIG_SPI_DW_LEVEL_HIGH) + #define SPI_DW_IRQ_FLAGS (IOAPIC_LEVEL | IOAPIC_HIGH) + #elif defined(CONFIG_SPI_DW_LEVEL_LOW) + #define SPI_DW_IRQ_FLAGS (IOAPIC_LEVEL | IOAPIC_LOW) + #endif +#else + #define SPI_DW_IRQ_FLAGS 0 +#endif /* CONFIG_IOAPIC */ + #ifdef CONFIG_SPI_DW_PORT_0 void spi_config_0_irq(struct device *dev); diff --git a/drivers/spi/intel_spi.c b/drivers/spi/intel_spi.c index a8efa1b8e4a..29801f79b9e 100644 --- a/drivers/spi/intel_spi.c +++ b/drivers/spi/intel_spi.c @@ -29,6 +29,10 @@ #include #include "intel_spi_priv.h" +#ifdef CONFIG_IOAPIC +#include +#endif + #ifndef CONFIG_SPI_DEBUG #define DBG(...) { ; } #else @@ -427,6 +431,20 @@ int spi_intel_init(struct device *dev) return DEV_OK; } +#ifdef CONFIG_IOAPIC + #if defined(CONFIG_SPI_INTEL_FALLING_EDGE) + #define SPI_INTEL_IRQ_FLAGS (IOAPIC_EDGE | IOAPIC_LOW) + #elif defined(CONFIG_SPI_INTEL_RISING_EDGE) + #define SPI_INTEL_IRQ_FLAGS (IOAPIC_EDGE | IOAPIC_HIGH) + #elif defined(CONFIG_SPI_INTEL_LEVEL_HIGH) + #define SPI_INTEL_IRQ_FLAGS (IOAPIC_LEVEL | IOAPIC_HIGH) + #elif defined(CONFIG_SPI_INTEL_LEVEL_LOW) + #define SPI_INTEL_IRQ_FLAGS (IOAPIC_LEVEL | IOAPIC_LOW) + #endif +#else + #define SPI_INTEL_IRQ_FLAGS 0 +#endif /* CONFIG_IOAPIC */ + /* system bindings */ #ifdef CONFIG_SPI_INTEL_PORT_0