From 91ea542816c931899b52dc76dd1f0b15baff8d26 Mon Sep 17 00:00:00 2001 From: Daniel Leung Date: Mon, 28 Sep 2015 15:16:34 -0700 Subject: [PATCH] x86: galileo: enable shared IRQ support for I2C The DesignWare GPIO and I2C are PCI devices which share the same IRQ line. This patch enables the shared IRQ support for I2C. GPIO support is to be followed. This also enables I2C for nanokernel on Galileo. Change-Id: I66681d71899914bdcb35c4af649d077ffb8d7970 Signed-off-by: Daniel Leung --- arch/x86/configs/micro_galileo_defconfig | 3 +++ arch/x86/configs/nano_galileo_defconfig | 6 ++++++ arch/x86/platforms/galileo/Kconfig | 13 +++++++++++++ 3 files changed, 22 insertions(+) diff --git a/arch/x86/configs/micro_galileo_defconfig b/arch/x86/configs/micro_galileo_defconfig index b4ae2f2a35a..4910a2064a2 100644 --- a/arch/x86/configs/micro_galileo_defconfig +++ b/arch/x86/configs/micro_galileo_defconfig @@ -15,6 +15,7 @@ CONFIG_GPIO=y CONFIG_I2C=y CONFIG_I2C_DW=y CONFIG_I2C_DW_0=y +CONFIG_I2C_DW_0_IRQ_SHARED=y CONFIG_GPIO_PCAL9535A=y CONFIG_GPIO_PCAL9535A_DEBUG=y CONFIG_GPIO_MMIO=y @@ -23,3 +24,5 @@ CONFIG_GPIO_MMIO_0_ACCESS_IO=y CONFIG_GPIO_MMIO_1=y CONFIG_GPIO_MMIO_1_ACCESS_IO=y CONFIG_I2C_DW_IRQ_LEVEL_LOW=y +CONFIG_SHARED_IRQ=y +CONFIG_SHARED_IRQ_0_LEVEL_LOW=y diff --git a/arch/x86/configs/nano_galileo_defconfig b/arch/x86/configs/nano_galileo_defconfig index d8f01b244dd..e6df74d5a50 100644 --- a/arch/x86/configs/nano_galileo_defconfig +++ b/arch/x86/configs/nano_galileo_defconfig @@ -11,6 +11,10 @@ CONFIG_UART_CONSOLE=y CONFIG_HPET_TIMER_LEVEL_LOW=y CONFIG_SERIAL_INTERRUPT_LOW=y CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=25000000 +CONFIG_I2C=y +CONFIG_I2C_DW=y +CONFIG_I2C_DW_0=y +CONFIG_I2C_DW_0_IRQ_SHARED=y CONFIG_GPIO=y CONFIG_GPIO_PCAL9535A=y CONFIG_GPIO_PCAL9535A_DEBUG=y @@ -23,3 +27,5 @@ CONFIG_GPIO_MMIO_0_ACCESS_IO=y CONFIG_GPIO_MMIO_1=y CONFIG_GPIO_MMIO_1_ACCESS_IO=y CONFIG_I2C_DW_IRQ_LEVEL_LOW=y +CONFIG_SHARED_IRQ=y +CONFIG_SHARED_IRQ_0_LEVEL_LOW=y diff --git a/arch/x86/platforms/galileo/Kconfig b/arch/x86/platforms/galileo/Kconfig index e8a0ecdba66..9fdfae8f5d3 100644 --- a/arch/x86/platforms/galileo/Kconfig +++ b/arch/x86/platforms/galileo/Kconfig @@ -53,6 +53,17 @@ config PINMUX config I2C def_bool y +if SHARED_IRQ +config SHARED_IRQ_0 + def_bool y +config SHARED_IRQ_0_NAME + default "SHARED_IRQ0" +config SHARED_IRQ_0_IRQ + default 18 +config SHARED_IRQ_0_PRI + default 0 +endif + if I2C config I2C_CLOCK_SPEED default 25 @@ -84,6 +95,8 @@ config I2C_DW_0_FUNCTION default 2 config I2C_DW_0_BAR default 0 +config I2C_DW_0_IRQ_SHARED_NAME + default "SHARED_IRQ0" if SHARED_IRQ endif if GPIO && I2C