aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx/mach-mx31ads.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-imx/mach-mx31ads.c')
-rw-r--r--arch/arm/mach-imx/mach-mx31ads.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/arch/arm/mach-imx/mach-mx31ads.c b/arch/arm/mach-imx/mach-mx31ads.c
index 4518e5448227..6f19f98ddbe9 100644
--- a/arch/arm/mach-imx/mach-mx31ads.c
+++ b/arch/arm/mach-imx/mach-mx31ads.c
@@ -62,7 +62,6 @@
62#define PBC_INTSTATUS_REG (PBC_INTSTATUS + PBC_BASE_ADDRESS) 62#define PBC_INTSTATUS_REG (PBC_INTSTATUS + PBC_BASE_ADDRESS)
63#define PBC_INTMASK_SET_REG (PBC_INTMASK_SET + PBC_BASE_ADDRESS) 63#define PBC_INTMASK_SET_REG (PBC_INTMASK_SET + PBC_BASE_ADDRESS)
64#define PBC_INTMASK_CLEAR_REG (PBC_INTMASK_CLEAR + PBC_BASE_ADDRESS) 64#define PBC_INTMASK_CLEAR_REG (PBC_INTMASK_CLEAR + PBC_BASE_ADDRESS)
65#define EXPIO_PARENT_INT IOMUX_TO_IRQ(MX31_PIN_GPIO1_4)
66 65
67#define MXC_EXP_IO_BASE MXC_BOARD_IRQ_START 66#define MXC_EXP_IO_BASE MXC_BOARD_IRQ_START
68#define MXC_IRQ_TO_EXPIO(irq) ((irq) - MXC_EXP_IO_BASE) 67#define MXC_IRQ_TO_EXPIO(irq) ((irq) - MXC_EXP_IO_BASE)
@@ -209,7 +208,7 @@ static struct irq_chip expio_irq_chip = {
209 208
210static void __init mx31ads_init_expio(void) 209static void __init mx31ads_init_expio(void)
211{ 210{
212 int i; 211 int i, irq;
213 212
214 printk(KERN_INFO "MX31ADS EXPIO(CPLD) hardware\n"); 213 printk(KERN_INFO "MX31ADS EXPIO(CPLD) hardware\n");
215 214
@@ -226,8 +225,9 @@ static void __init mx31ads_init_expio(void)
226 irq_set_chip_and_handler(i, &expio_irq_chip, handle_level_irq); 225 irq_set_chip_and_handler(i, &expio_irq_chip, handle_level_irq);
227 set_irq_flags(i, IRQF_VALID); 226 set_irq_flags(i, IRQF_VALID);
228 } 227 }
229 irq_set_irq_type(EXPIO_PARENT_INT, IRQ_TYPE_LEVEL_HIGH); 228 irq = gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_4));
230 irq_set_chained_handler(EXPIO_PARENT_INT, mx31ads_expio_irq_handler); 229 irq_set_irq_type(irq, IRQ_TYPE_LEVEL_HIGH);
230 irq_set_chained_handler(irq, mx31ads_expio_irq_handler);
231} 231}
232 232
233#ifdef CONFIG_MACH_MX31ADS_WM1133_EV1 233#ifdef CONFIG_MACH_MX31ADS_WM1133_EV1
@@ -488,13 +488,17 @@ static struct i2c_board_info __initdata mx31ads_i2c1_devices[] = {
488 { 488 {
489 I2C_BOARD_INFO("wm8350", 0x1a), 489 I2C_BOARD_INFO("wm8350", 0x1a),
490 .platform_data = &mx31_wm8350_pdata, 490 .platform_data = &mx31_wm8350_pdata,
491 .irq = IOMUX_TO_IRQ(MX31_PIN_GPIO1_3), 491 /* irq number is run-time assigned */
492 }, 492 },
493#endif 493#endif
494}; 494};
495 495
496static void __init mxc_init_i2c(void) 496static void __init mxc_init_i2c(void)
497{ 497{
498#ifdef CONFIG_MACH_MX31ADS_WM1133_EV1
499 mx31ads_i2c1_devices[0].irq =
500 gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3));
501#endif
498 i2c_register_board_info(1, mx31ads_i2c1_devices, 502 i2c_register_board_info(1, mx31ads_i2c1_devices,
499 ARRAY_SIZE(mx31ads_i2c1_devices)); 503 ARRAY_SIZE(mx31ads_i2c1_devices));
500 504