diff options
| author | Arnd Bergmann <arnd@arndb.de> | 2012-07-02 17:18:19 -0400 |
|---|---|---|
| committer | Arnd Bergmann <arnd@arndb.de> | 2012-07-02 17:18:19 -0400 |
| commit | fdc0867884ec0fc78091e28efa1d439affb5eb20 (patch) | |
| tree | 498e8cf99f3675f554a70f0fbfc66a86d90fbb5c | |
| parent | 6887a4131da3adaab011613776d865f4bcfb5678 (diff) | |
| parent | 8842a9e2869cae14bbb8184004a42fc3070587fb (diff) | |
Merge branch 'imx/sparse-irq' of git://git.linaro.org/people/shawnguo/linux-2.6 into next/irq
From Shawn Guo <shawn.guo@linaro.org>, this makes it possible to use
sparse irqs with mach-imx.
* 'imx/sparse-irq' of git://git.linaro.org/people/shawnguo/linux-2.6:
ARM: imx: enable SPARSE_IRQ for imx platform
ARM: fiq: change FIQ_START to a variable
tty: serial: imx: remove the use of MXC_INTERNAL_IRQS
ARM: imx: remove unneeded mach/irq.h inclusion
i2c: imx: remove unneeded mach/irqs.h inclusion
ARM: imx: add a legacy irqdomain for mx31ads
ARM: imx: add a legacy irqdomain for 3ds_debugboard
ARM: imx: pass gpio than irq number into mxc_expio_init
ARM: imx: leave irq_base of wm8350_platform_data uninitialized
dma: ipu: remove the use of ipu_platform_data
ARM: imx: move irq_domain_add_legacy call into avic driver
ARM: imx: move irq_domain_add_legacy call into tzic driver
gpio/mxc: move irq_domain_add_legacy call into gpio driver
ARM: imx: eliminate macro IRQ_GPIOx()
ARM: imx: eliminate macro IOMUX_TO_IRQ()
ARM: imx: eliminate macro IMX_GPIO_TO_IRQ()
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
78 files changed, 1050 insertions, 1127 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index a91009c61870..c9ad2b6a4505 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -447,6 +447,7 @@ config ARCH_MXC | |||
| 447 | select CLKSRC_MMIO | 447 | select CLKSRC_MMIO |
| 448 | select GENERIC_IRQ_CHIP | 448 | select GENERIC_IRQ_CHIP |
| 449 | select MULTI_IRQ_HANDLER | 449 | select MULTI_IRQ_HANDLER |
| 450 | select SPARSE_IRQ | ||
| 450 | help | 451 | help |
| 451 | Support for Freescale MXC/iMX-based family of processors | 452 | Support for Freescale MXC/iMX-based family of processors |
| 452 | 453 | ||
diff --git a/arch/arm/include/asm/mach/irq.h b/arch/arm/include/asm/mach/irq.h index febe495d0c6e..15cb035309f7 100644 --- a/arch/arm/include/asm/mach/irq.h +++ b/arch/arm/include/asm/mach/irq.h | |||
| @@ -17,7 +17,7 @@ struct seq_file; | |||
| 17 | /* | 17 | /* |
| 18 | * This is internal. Do not use it. | 18 | * This is internal. Do not use it. |
| 19 | */ | 19 | */ |
| 20 | extern void init_FIQ(void); | 20 | extern void init_FIQ(int); |
| 21 | extern int show_fiq_list(struct seq_file *, int); | 21 | extern int show_fiq_list(struct seq_file *, int); |
| 22 | 22 | ||
| 23 | #ifdef CONFIG_MULTI_IRQ_HANDLER | 23 | #ifdef CONFIG_MULTI_IRQ_HANDLER |
diff --git a/arch/arm/kernel/fiq.c b/arch/arm/kernel/fiq.c index c32f8456aa09..2adda11f712f 100644 --- a/arch/arm/kernel/fiq.c +++ b/arch/arm/kernel/fiq.c | |||
| @@ -122,14 +122,16 @@ void release_fiq(struct fiq_handler *f) | |||
| 122 | while (current_fiq->fiq_op(current_fiq->dev_id, 0)); | 122 | while (current_fiq->fiq_op(current_fiq->dev_id, 0)); |
| 123 | } | 123 | } |
| 124 | 124 | ||
| 125 | static int fiq_start; | ||
| 126 | |||
| 125 | void enable_fiq(int fiq) | 127 | void enable_fiq(int fiq) |
| 126 | { | 128 | { |
| 127 | enable_irq(fiq + FIQ_START); | 129 | enable_irq(fiq + fiq_start); |
| 128 | } | 130 | } |
| 129 | 131 | ||
| 130 | void disable_fiq(int fiq) | 132 | void disable_fiq(int fiq) |
| 131 | { | 133 | { |
| 132 | disable_irq(fiq + FIQ_START); | 134 | disable_irq(fiq + fiq_start); |
| 133 | } | 135 | } |
| 134 | 136 | ||
| 135 | EXPORT_SYMBOL(set_fiq_handler); | 137 | EXPORT_SYMBOL(set_fiq_handler); |
| @@ -140,7 +142,8 @@ EXPORT_SYMBOL(release_fiq); | |||
| 140 | EXPORT_SYMBOL(enable_fiq); | 142 | EXPORT_SYMBOL(enable_fiq); |
| 141 | EXPORT_SYMBOL(disable_fiq); | 143 | EXPORT_SYMBOL(disable_fiq); |
| 142 | 144 | ||
| 143 | void __init init_FIQ(void) | 145 | void __init init_FIQ(int start) |
| 144 | { | 146 | { |
| 145 | no_fiq_insn = *(unsigned long *)0xffff001c; | 147 | no_fiq_insn = *(unsigned long *)0xffff001c; |
| 148 | fiq_start = start; | ||
| 146 | } | 149 | } |
diff --git a/arch/arm/mach-imx/devices-imx31.h b/arch/arm/mach-imx/devices-imx31.h index 488e241a6db6..911c2dac2452 100644 --- a/arch/arm/mach-imx/devices-imx31.h +++ b/arch/arm/mach-imx/devices-imx31.h | |||
| @@ -42,8 +42,8 @@ extern const struct imx_imx_uart_1irq_data imx31_imx_uart_data[]; | |||
| 42 | #define imx31_add_imx_uart4(pdata) imx31_add_imx_uart(4, pdata) | 42 | #define imx31_add_imx_uart4(pdata) imx31_add_imx_uart(4, pdata) |
| 43 | 43 | ||
| 44 | extern const struct imx_ipu_core_data imx31_ipu_core_data; | 44 | extern const struct imx_ipu_core_data imx31_ipu_core_data; |
| 45 | #define imx31_add_ipu_core(pdata) \ | 45 | #define imx31_add_ipu_core() \ |
| 46 | imx_add_ipu_core(&imx31_ipu_core_data, pdata) | 46 | imx_add_ipu_core(&imx31_ipu_core_data) |
| 47 | #define imx31_alloc_mx3_camera(pdata) \ | 47 | #define imx31_alloc_mx3_camera(pdata) \ |
| 48 | imx_alloc_mx3_camera(&imx31_ipu_core_data, pdata) | 48 | imx_alloc_mx3_camera(&imx31_ipu_core_data, pdata) |
| 49 | #define imx31_add_mx3_sdc_fb(pdata) \ | 49 | #define imx31_add_mx3_sdc_fb(pdata) \ |
diff --git a/arch/arm/mach-imx/devices-imx35.h b/arch/arm/mach-imx/devices-imx35.h index 7b99ef0bb501..6fb907290f47 100644 --- a/arch/arm/mach-imx/devices-imx35.h +++ b/arch/arm/mach-imx/devices-imx35.h | |||
| @@ -50,8 +50,8 @@ extern const struct imx_imx_uart_1irq_data imx35_imx_uart_data[]; | |||
| 50 | #define imx35_add_imx_uart2(pdata) imx35_add_imx_uart(2, pdata) | 50 | #define imx35_add_imx_uart2(pdata) imx35_add_imx_uart(2, pdata) |
| 51 | 51 | ||
| 52 | extern const struct imx_ipu_core_data imx35_ipu_core_data; | 52 | extern const struct imx_ipu_core_data imx35_ipu_core_data; |
| 53 | #define imx35_add_ipu_core(pdata) \ | 53 | #define imx35_add_ipu_core() \ |
| 54 | imx_add_ipu_core(&imx35_ipu_core_data, pdata) | 54 | imx_add_ipu_core(&imx35_ipu_core_data) |
| 55 | #define imx35_alloc_mx3_camera(pdata) \ | 55 | #define imx35_alloc_mx3_camera(pdata) \ |
| 56 | imx_alloc_mx3_camera(&imx35_ipu_core_data, pdata) | 56 | imx_alloc_mx3_camera(&imx35_ipu_core_data, pdata) |
| 57 | #define imx35_add_mx3_sdc_fb(pdata) \ | 57 | #define imx35_add_mx3_sdc_fb(pdata) \ |
diff --git a/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c b/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c index b46cab0ced53..fd3177f9e79a 100644 --- a/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c +++ b/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c | |||
| @@ -266,7 +266,7 @@ static struct spi_board_info __maybe_unused | |||
| 266 | .bus_num = 0, | 266 | .bus_num = 0, |
| 267 | .chip_select = 0, | 267 | .chip_select = 0, |
| 268 | .max_speed_hz = 1500000, | 268 | .max_speed_hz = 1500000, |
| 269 | .irq = IRQ_GPIOD(25), | 269 | /* irq number is run-time assigned */ |
| 270 | .platform_data = &ads7846_config, | 270 | .platform_data = &ads7846_config, |
| 271 | .mode = SPI_MODE_2, | 271 | .mode = SPI_MODE_2, |
| 272 | }, | 272 | }, |
| @@ -329,6 +329,7 @@ void __init eukrea_mbimx27_baseboard_init(void) | |||
| 329 | /* SPI_CS0 init */ | 329 | /* SPI_CS0 init */ |
| 330 | mxc_gpio_mode(GPIO_PORTD | 28 | GPIO_GPIO | GPIO_OUT); | 330 | mxc_gpio_mode(GPIO_PORTD | 28 | GPIO_GPIO | GPIO_OUT); |
| 331 | imx27_add_spi_imx0(&eukrea_mbimx27_spi0_data); | 331 | imx27_add_spi_imx0(&eukrea_mbimx27_spi0_data); |
| 332 | eukrea_mbimx27_spi_board_info[0].irq = gpio_to_irq(IMX_GPIO_NR(4, 25)); | ||
| 332 | spi_register_board_info(eukrea_mbimx27_spi_board_info, | 333 | spi_register_board_info(eukrea_mbimx27_spi_board_info, |
| 333 | ARRAY_SIZE(eukrea_mbimx27_spi_board_info)); | 334 | ARRAY_SIZE(eukrea_mbimx27_spi_board_info)); |
| 334 | 335 | ||
diff --git a/arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c b/arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c index 557f6c486053..6e9dd12a6961 100644 --- a/arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c +++ b/arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c | |||
| @@ -95,10 +95,6 @@ static const struct fb_videomode fb_modedb[] = { | |||
| 95 | }, | 95 | }, |
| 96 | }; | 96 | }; |
| 97 | 97 | ||
| 98 | static const struct ipu_platform_data mx3_ipu_data __initconst = { | ||
| 99 | .irq_base = MXC_IPU_IRQ_START, | ||
| 100 | }; | ||
| 101 | |||
| 102 | static struct mx3fb_platform_data mx3fb_pdata __initdata = { | 98 | static struct mx3fb_platform_data mx3fb_pdata __initdata = { |
| 103 | .name = "CMO-QVGA", | 99 | .name = "CMO-QVGA", |
| 104 | .mode = fb_modedb, | 100 | .mode = fb_modedb, |
| @@ -287,7 +283,7 @@ void __init eukrea_mbimxsd35_baseboard_init(void) | |||
| 287 | printk(KERN_ERR "error setting mbimxsd pads !\n"); | 283 | printk(KERN_ERR "error setting mbimxsd pads !\n"); |
| 288 | 284 | ||
| 289 | imx35_add_imx_uart1(&uart_pdata); | 285 | imx35_add_imx_uart1(&uart_pdata); |
| 290 | imx35_add_ipu_core(&mx3_ipu_data); | 286 | imx35_add_ipu_core(); |
| 291 | imx35_add_mx3_sdc_fb(&mx3fb_pdata); | 287 | imx35_add_mx3_sdc_fb(&mx3fb_pdata); |
| 292 | 288 | ||
| 293 | imx35_add_imx_ssi(0, &eukrea_mbimxsd_ssi_pdata); | 289 | imx35_add_imx_ssi(0, &eukrea_mbimxsd_ssi_pdata); |
diff --git a/arch/arm/mach-imx/imx27-dt.c b/arch/arm/mach-imx/imx27-dt.c index eee0cc8d92a4..5142ef048a60 100644 --- a/arch/arm/mach-imx/imx27-dt.c +++ b/arch/arm/mach-imx/imx27-dt.c | |||
| @@ -10,7 +10,6 @@ | |||
| 10 | */ | 10 | */ |
| 11 | 11 | ||
| 12 | #include <linux/irq.h> | 12 | #include <linux/irq.h> |
| 13 | #include <linux/irqdomain.h> | ||
| 14 | #include <linux/of_irq.h> | 13 | #include <linux/of_irq.h> |
| 15 | #include <linux/of_platform.h> | 14 | #include <linux/of_platform.h> |
| 16 | #include <asm/mach/arch.h> | 15 | #include <asm/mach/arch.h> |
| @@ -33,35 +32,8 @@ static const struct of_dev_auxdata imx27_auxdata_lookup[] __initconst = { | |||
| 33 | { /* sentinel */ } | 32 | { /* sentinel */ } |
| 34 | }; | 33 | }; |
| 35 | 34 | ||
| 36 | static int __init imx27_avic_add_irq_domain(struct device_node *np, | ||
| 37 | struct device_node *interrupt_parent) | ||
| 38 | { | ||
| 39 | irq_domain_add_legacy(np, 64, 0, 0, &irq_domain_simple_ops, NULL); | ||
| 40 | return 0; | ||
| 41 | } | ||
| 42 | |||
| 43 | static int __init imx27_gpio_add_irq_domain(struct device_node *np, | ||
| 44 | struct device_node *interrupt_parent) | ||
| 45 | { | ||
| 46 | static int gpio_irq_base = MXC_GPIO_IRQ_START + ARCH_NR_GPIOS; | ||
| 47 | |||
| 48 | gpio_irq_base -= 32; | ||
| 49 | irq_domain_add_legacy(np, 32, gpio_irq_base, 0, &irq_domain_simple_ops, | ||
| 50 | NULL); | ||
| 51 | |||
| 52 | return 0; | ||
| 53 | } | ||
| 54 | |||
| 55 | static const struct of_device_id imx27_irq_match[] __initconst = { | ||
| 56 | { .compatible = "fsl,imx27-avic", .data = imx27_avic_add_irq_domain, }, | ||
| 57 | { .compatible = "fsl,imx27-gpio", .data = imx27_gpio_add_irq_domain, }, | ||
| 58 | { /* sentinel */ } | ||
| 59 | }; | ||
| 60 | |||
| 61 | static void __init imx27_dt_init(void) | 35 | static void __init imx27_dt_init(void) |
| 62 | { | 36 | { |
| 63 | of_irq_init(imx27_irq_match); | ||
| 64 | |||
| 65 | of_platform_populate(NULL, of_default_bus_match_table, | 37 | of_platform_populate(NULL, of_default_bus_match_table, |
| 66 | imx27_auxdata_lookup, NULL); | 38 | imx27_auxdata_lookup, NULL); |
| 67 | } | 39 | } |
diff --git a/arch/arm/mach-imx/imx51-dt.c b/arch/arm/mach-imx/imx51-dt.c index 18e78dba4298..d4067fe36357 100644 --- a/arch/arm/mach-imx/imx51-dt.c +++ b/arch/arm/mach-imx/imx51-dt.c | |||
| @@ -11,7 +11,6 @@ | |||
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #include <linux/irq.h> | 13 | #include <linux/irq.h> |
| 14 | #include <linux/irqdomain.h> | ||
| 15 | #include <linux/of_irq.h> | 14 | #include <linux/of_irq.h> |
| 16 | #include <linux/of_platform.h> | 15 | #include <linux/of_platform.h> |
| 17 | #include <linux/pinctrl/machine.h> | 16 | #include <linux/pinctrl/machine.h> |
| @@ -45,30 +44,6 @@ static const struct of_dev_auxdata imx51_auxdata_lookup[] __initconst = { | |||
| 45 | { /* sentinel */ } | 44 | { /* sentinel */ } |
| 46 | }; | 45 | }; |
| 47 | 46 | ||
| 48 | static int __init imx51_tzic_add_irq_domain(struct device_node *np, | ||
| 49 | struct device_node *interrupt_parent) | ||
| 50 | { | ||
| 51 | irq_domain_add_legacy(np, 128, 0, 0, &irq_domain_simple_ops, NULL); | ||
| 52 | return 0; | ||
| 53 | } | ||
| 54 | |||
| 55 | static int __init imx51_gpio_add_irq_domain(struct device_node *np, | ||
| 56 | struct device_node *interrupt_parent) | ||
| 57 | { | ||
| 58 | static int gpio_irq_base = MXC_GPIO_IRQ_START + ARCH_NR_GPIOS; | ||
| 59 | |||
| 60 | gpio_irq_base -= 32; | ||
| 61 | irq_domain_add_legacy(np, 32, gpio_irq_base, 0, &irq_domain_simple_ops, NULL); | ||
| 62 | |||
| 63 | return 0; | ||
| 64 | } | ||
| 65 | |||
| 66 | static const struct of_device_id imx51_irq_match[] __initconst = { | ||
| 67 | { .compatible = "fsl,imx51-tzic", .data = imx51_tzic_add_irq_domain, }, | ||
| 68 | { .compatible = "fsl,imx51-gpio", .data = imx51_gpio_add_irq_domain, }, | ||
| 69 | { /* sentinel */ } | ||
| 70 | }; | ||
| 71 | |||
| 72 | static const struct of_device_id imx51_iomuxc_of_match[] __initconst = { | 47 | static const struct of_device_id imx51_iomuxc_of_match[] __initconst = { |
| 73 | { .compatible = "fsl,imx51-iomuxc-babbage", .data = imx51_babbage_common_init, }, | 48 | { .compatible = "fsl,imx51-iomuxc-babbage", .data = imx51_babbage_common_init, }, |
| 74 | { /* sentinel */ } | 49 | { /* sentinel */ } |
| @@ -80,8 +55,6 @@ static void __init imx51_dt_init(void) | |||
| 80 | const struct of_device_id *of_id; | 55 | const struct of_device_id *of_id; |
| 81 | void (*func)(void); | 56 | void (*func)(void); |
| 82 | 57 | ||
| 83 | of_irq_init(imx51_irq_match); | ||
| 84 | |||
| 85 | pinctrl_provide_dummies(); | 58 | pinctrl_provide_dummies(); |
| 86 | 59 | ||
| 87 | node = of_find_matching_node(NULL, imx51_iomuxc_of_match); | 60 | node = of_find_matching_node(NULL, imx51_iomuxc_of_match); |
diff --git a/arch/arm/mach-imx/imx53-dt.c b/arch/arm/mach-imx/imx53-dt.c index eb04b6248e48..fdd90805d98e 100644 --- a/arch/arm/mach-imx/imx53-dt.c +++ b/arch/arm/mach-imx/imx53-dt.c | |||
| @@ -15,7 +15,6 @@ | |||
| 15 | #include <linux/err.h> | 15 | #include <linux/err.h> |
| 16 | #include <linux/io.h> | 16 | #include <linux/io.h> |
| 17 | #include <linux/irq.h> | 17 | #include <linux/irq.h> |
| 18 | #include <linux/irqdomain.h> | ||
| 19 | #include <linux/of_irq.h> | 18 | #include <linux/of_irq.h> |
| 20 | #include <linux/of_platform.h> | 19 | #include <linux/of_platform.h> |
| 21 | #include <linux/pinctrl/machine.h> | 20 | #include <linux/pinctrl/machine.h> |
| @@ -52,30 +51,6 @@ static const struct of_dev_auxdata imx53_auxdata_lookup[] __initconst = { | |||
| 52 | { /* sentinel */ } | 51 | { /* sentinel */ } |
| 53 | }; | 52 | }; |
| 54 | 53 | ||
| 55 | static int __init imx53_tzic_add_irq_domain(struct device_node *np, | ||
| 56 | struct device_node *interrupt_parent) | ||
| 57 | { | ||
| 58 | irq_domain_add_legacy(np, 128, 0, 0, &irq_domain_simple_ops, NULL); | ||
| 59 | return 0; | ||
| 60 | } | ||
| 61 | |||
| 62 | static int __init imx53_gpio_add_irq_domain(struct device_node *np, | ||
| 63 | struct device_node *interrupt_parent) | ||
| 64 | { | ||
| 65 | static int gpio_irq_base = MXC_GPIO_IRQ_START + ARCH_NR_GPIOS; | ||
| 66 | |||
| 67 | gpio_irq_base -= 32; | ||
| 68 | irq_domain_add_legacy(np, 32, gpio_irq_base, 0, &irq_domain_simple_ops, NULL); | ||
| 69 | |||
| 70 | return 0; | ||
| 71 | } | ||
| 72 | |||
| 73 | static const struct of_device_id imx53_irq_match[] __initconst = { | ||
| 74 | { .compatible = "fsl,imx53-tzic", .data = imx53_tzic_add_irq_domain, }, | ||
| 75 | { .compatible = "fsl,imx53-gpio", .data = imx53_gpio_add_irq_domain, }, | ||
| 76 | { /* sentinel */ } | ||
| 77 | }; | ||
| 78 | |||
| 79 | static const struct of_device_id imx53_iomuxc_of_match[] __initconst = { | 54 | static const struct of_device_id imx53_iomuxc_of_match[] __initconst = { |
| 80 | { .compatible = "fsl,imx53-iomuxc-ard", .data = imx53_ard_common_init, }, | 55 | { .compatible = "fsl,imx53-iomuxc-ard", .data = imx53_ard_common_init, }, |
| 81 | { .compatible = "fsl,imx53-iomuxc-evk", .data = imx53_evk_common_init, }, | 56 | { .compatible = "fsl,imx53-iomuxc-evk", .data = imx53_evk_common_init, }, |
| @@ -103,8 +78,6 @@ static void __init imx53_dt_init(void) | |||
| 103 | const struct of_device_id *of_id; | 78 | const struct of_device_id *of_id; |
| 104 | void (*func)(void); | 79 | void (*func)(void); |
| 105 | 80 | ||
| 106 | of_irq_init(imx53_irq_match); | ||
| 107 | |||
| 108 | pinctrl_provide_dummies(); | 81 | pinctrl_provide_dummies(); |
| 109 | 82 | ||
| 110 | node = of_find_matching_node(NULL, imx53_iomuxc_of_match); | 83 | node = of_find_matching_node(NULL, imx53_iomuxc_of_match); |
diff --git a/arch/arm/mach-imx/mach-apf9328.c b/arch/arm/mach-imx/mach-apf9328.c index f4a63ee9e217..7b99a79722b6 100644 --- a/arch/arm/mach-imx/mach-apf9328.c +++ b/arch/arm/mach-imx/mach-apf9328.c | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | #include <linux/platform_device.h> | 18 | #include <linux/platform_device.h> |
| 19 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
| 20 | #include <linux/dm9000.h> | 20 | #include <linux/dm9000.h> |
| 21 | #include <linux/gpio.h> | ||
| 21 | #include <linux/i2c.h> | 22 | #include <linux/i2c.h> |
| 22 | 23 | ||
| 23 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
| @@ -26,7 +27,6 @@ | |||
| 26 | 27 | ||
| 27 | #include <mach/common.h> | 28 | #include <mach/common.h> |
| 28 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
| 29 | #include <mach/irqs.h> | ||
| 30 | #include <mach/iomux-mx1.h> | 30 | #include <mach/iomux-mx1.h> |
| 31 | 31 | ||
| 32 | #include "devices-imx1.h" | 32 | #include "devices-imx1.h" |
| @@ -87,8 +87,7 @@ static struct resource dm9000_resources[] = { | |||
| 87 | .end = MX1_CS4_PHYS + 0x00C00003, | 87 | .end = MX1_CS4_PHYS + 0x00C00003, |
| 88 | .flags = IORESOURCE_MEM, | 88 | .flags = IORESOURCE_MEM, |
| 89 | }, { | 89 | }, { |
| 90 | .start = IRQ_GPIOB(14), | 90 | /* irq number is run-time assigned */ |
| 91 | .end = IRQ_GPIOB(14), | ||
| 92 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, | 91 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, |
| 93 | }, | 92 | }, |
| 94 | }; | 93 | }; |
| @@ -129,6 +128,8 @@ static void __init apf9328_init(void) | |||
| 129 | 128 | ||
| 130 | imx1_add_imx_i2c(&apf9328_i2c_data); | 129 | imx1_add_imx_i2c(&apf9328_i2c_data); |
| 131 | 130 | ||
| 131 | dm9000_resources[2].start = gpio_to_irq(IMX_GPIO_NR(2, 14)); | ||
| 132 | dm9000_resources[2].end = gpio_to_irq(IMX_GPIO_NR(2, 14)); | ||
| 132 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 133 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
| 133 | } | 134 | } |
| 134 | 135 | ||
diff --git a/arch/arm/mach-imx/mach-armadillo5x0.c b/arch/arm/mach-imx/mach-armadillo5x0.c index c650145d1646..2c6ab3273f9e 100644 --- a/arch/arm/mach-imx/mach-armadillo5x0.c +++ b/arch/arm/mach-imx/mach-armadillo5x0.c | |||
| @@ -367,10 +367,6 @@ static const struct fb_videomode fb_modedb[] = { | |||
| 367 | }, | 367 | }, |
| 368 | }; | 368 | }; |
| 369 | 369 | ||
| 370 | static const struct ipu_platform_data mx3_ipu_data __initconst = { | ||
| 371 | .irq_base = MXC_IPU_IRQ_START, | ||
| 372 | }; | ||
| 373 | |||
| 374 | static struct mx3fb_platform_data mx3fb_pdata __initdata = { | 370 | static struct mx3fb_platform_data mx3fb_pdata __initdata = { |
| 375 | .name = "CRT-VGA", | 371 | .name = "CRT-VGA", |
| 376 | .mode = fb_modedb, | 372 | .mode = fb_modedb, |
| @@ -408,7 +404,8 @@ static int armadillo5x0_sdhc1_init(struct device *dev, | |||
| 408 | gpio_direction_input(gpio_wp); | 404 | gpio_direction_input(gpio_wp); |
| 409 | 405 | ||
| 410 | /* When supported the trigger type have to be BOTH */ | 406 | /* When supported the trigger type have to be BOTH */ |
| 411 | ret = request_irq(IOMUX_TO_IRQ(MX31_PIN_ATA_DMACK), detect_irq, | 407 | ret = request_irq(gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_ATA_DMACK)), |
| 408 | detect_irq, | ||
| 412 | IRQF_DISABLED | IRQF_TRIGGER_FALLING, | 409 | IRQF_DISABLED | IRQF_TRIGGER_FALLING, |
| 413 | "sdhc-detect", data); | 410 | "sdhc-detect", data); |
| 414 | 411 | ||
| @@ -429,7 +426,7 @@ err_gpio_free: | |||
| 429 | 426 | ||
| 430 | static void armadillo5x0_sdhc1_exit(struct device *dev, void *data) | 427 | static void armadillo5x0_sdhc1_exit(struct device *dev, void *data) |
| 431 | { | 428 | { |
| 432 | free_irq(IOMUX_TO_IRQ(MX31_PIN_ATA_DMACK), data); | 429 | free_irq(gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_ATA_DMACK)), data); |
| 433 | gpio_free(IOMUX_TO_GPIO(MX31_PIN_ATA_DMACK)); | 430 | gpio_free(IOMUX_TO_GPIO(MX31_PIN_ATA_DMACK)); |
| 434 | gpio_free(IOMUX_TO_GPIO(MX31_PIN_ATA_RESET_B)); | 431 | gpio_free(IOMUX_TO_GPIO(MX31_PIN_ATA_RESET_B)); |
| 435 | } | 432 | } |
| @@ -450,8 +447,7 @@ static struct resource armadillo5x0_smc911x_resources[] = { | |||
| 450 | .end = MX31_CS3_BASE_ADDR + SZ_32M - 1, | 447 | .end = MX31_CS3_BASE_ADDR + SZ_32M - 1, |
| 451 | .flags = IORESOURCE_MEM, | 448 | .flags = IORESOURCE_MEM, |
| 452 | }, { | 449 | }, { |
| 453 | .start = IOMUX_TO_IRQ(MX31_PIN_GPIO1_0), | 450 | /* irq number is run-time assigned */ |
| 454 | .end = IOMUX_TO_IRQ(MX31_PIN_GPIO1_0), | ||
| 455 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, | 451 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, |
| 456 | }, | 452 | }, |
| 457 | }; | 453 | }; |
| @@ -498,6 +494,10 @@ static void __init armadillo5x0_init(void) | |||
| 498 | 494 | ||
| 499 | regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies)); | 495 | regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies)); |
| 500 | 496 | ||
| 497 | armadillo5x0_smc911x_resources[1].start = | ||
| 498 | gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_0)); | ||
| 499 | armadillo5x0_smc911x_resources[1].end = | ||
| 500 | gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_0)); | ||
| 501 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 501 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
| 502 | imx_add_gpio_keys(&armadillo5x0_button_data); | 502 | imx_add_gpio_keys(&armadillo5x0_button_data); |
| 503 | imx31_add_imx_i2c1(NULL); | 503 | imx31_add_imx_i2c1(NULL); |
| @@ -513,7 +513,7 @@ static void __init armadillo5x0_init(void) | |||
| 513 | imx31_add_mxc_mmc(0, &sdhc_pdata); | 513 | imx31_add_mxc_mmc(0, &sdhc_pdata); |
| 514 | 514 | ||
| 515 | /* Register FB */ | 515 | /* Register FB */ |
| 516 | imx31_add_ipu_core(&mx3_ipu_data); | 516 | imx31_add_ipu_core(); |
| 517 | imx31_add_mx3_sdc_fb(&mx3fb_pdata); | 517 | imx31_add_mx3_sdc_fb(&mx3fb_pdata); |
| 518 | 518 | ||
| 519 | /* Register NOR Flash */ | 519 | /* Register NOR Flash */ |
diff --git a/arch/arm/mach-imx/mach-cpuimx27.c b/arch/arm/mach-imx/mach-cpuimx27.c index d085aea08709..fe74c84a1f4e 100644 --- a/arch/arm/mach-imx/mach-cpuimx27.c +++ b/arch/arm/mach-imx/mach-cpuimx27.c | |||
| @@ -169,28 +169,28 @@ static struct i2c_board_info eukrea_cpuimx27_i2c_devices[] = { | |||
| 169 | static struct plat_serial8250_port serial_platform_data[] = { | 169 | static struct plat_serial8250_port serial_platform_data[] = { |
| 170 | { | 170 | { |
| 171 | .mapbase = (unsigned long)(MX27_CS3_BASE_ADDR + 0x200000), | 171 | .mapbase = (unsigned long)(MX27_CS3_BASE_ADDR + 0x200000), |
| 172 | .irq = IRQ_GPIOB(23), | 172 | /* irq number is run-time assigned */ |
| 173 | .uartclk = 14745600, | 173 | .uartclk = 14745600, |
| 174 | .regshift = 1, | 174 | .regshift = 1, |
| 175 | .iotype = UPIO_MEM, | 175 | .iotype = UPIO_MEM, |
| 176 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP, | 176 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP, |
| 177 | }, { | 177 | }, { |
| 178 | .mapbase = (unsigned long)(MX27_CS3_BASE_ADDR + 0x400000), | 178 | .mapbase = (unsigned long)(MX27_CS3_BASE_ADDR + 0x400000), |
| 179 | .irq = IRQ_GPIOB(22), | 179 | /* irq number is run-time assigned */ |
| 180 | .uartclk = 14745600, | 180 | .uartclk = 14745600, |
| 181 | .regshift = 1, | 181 | .regshift = 1, |
| 182 | .iotype = UPIO_MEM, | 182 | .iotype = UPIO_MEM, |
| 183 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP, | 183 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP, |
| 184 | }, { | 184 | }, { |
| 185 | .mapbase = (unsigned long)(MX27_CS3_BASE_ADDR + 0x800000), | 185 | .mapbase = (unsigned long)(MX27_CS3_BASE_ADDR + 0x800000), |
| 186 | .irq = IRQ_GPIOB(27), | 186 | /* irq number is run-time assigned */ |
| 187 | .uartclk = 14745600, | 187 | .uartclk = 14745600, |
| 188 | .regshift = 1, | 188 | .regshift = 1, |
| 189 | .iotype = UPIO_MEM, | 189 | .iotype = UPIO_MEM, |
| 190 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP, | 190 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP, |
| 191 | }, { | 191 | }, { |
| 192 | .mapbase = (unsigned long)(MX27_CS3_BASE_ADDR + 0x1000000), | 192 | .mapbase = (unsigned long)(MX27_CS3_BASE_ADDR + 0x1000000), |
| 193 | .irq = IRQ_GPIOB(30), | 193 | /* irq number is run-time assigned */ |
| 194 | .uartclk = 14745600, | 194 | .uartclk = 14745600, |
| 195 | .regshift = 1, | 195 | .regshift = 1, |
| 196 | .iotype = UPIO_MEM, | 196 | .iotype = UPIO_MEM, |
| @@ -279,6 +279,10 @@ static void __init eukrea_cpuimx27_init(void) | |||
| 279 | #endif | 279 | #endif |
| 280 | 280 | ||
| 281 | #if defined(CONFIG_SERIAL_8250) || defined(CONFIG_SERIAL_8250_MODULE) | 281 | #if defined(CONFIG_SERIAL_8250) || defined(CONFIG_SERIAL_8250_MODULE) |
| 282 | serial_platform_data[0].irq = IMX_GPIO_NR(2, 23); | ||
| 283 | serial_platform_data[1].irq = IMX_GPIO_NR(2, 22); | ||
| 284 | serial_platform_data[2].irq = IMX_GPIO_NR(2, 27); | ||
| 285 | serial_platform_data[3].irq = IMX_GPIO_NR(2, 30); | ||
| 282 | platform_device_register(&serial_device); | 286 | platform_device_register(&serial_device); |
| 283 | #endif | 287 | #endif |
| 284 | 288 | ||
diff --git a/arch/arm/mach-imx/mach-cpuimx35.c b/arch/arm/mach-imx/mach-cpuimx35.c index 6450303f1a7a..3cd4523613d9 100644 --- a/arch/arm/mach-imx/mach-cpuimx35.c +++ b/arch/arm/mach-imx/mach-cpuimx35.c | |||
| @@ -71,7 +71,7 @@ static struct i2c_board_info eukrea_cpuimx35_i2c_devices[] = { | |||
| 71 | }, { | 71 | }, { |
| 72 | I2C_BOARD_INFO("tsc2007", 0x48), | 72 | I2C_BOARD_INFO("tsc2007", 0x48), |
| 73 | .platform_data = &tsc2007_info, | 73 | .platform_data = &tsc2007_info, |
| 74 | .irq = IMX_GPIO_TO_IRQ(TSC2007_IRQGPIO), | 74 | /* irq number is run-time assigned */ |
| 75 | }, | 75 | }, |
| 76 | }; | 76 | }; |
| 77 | 77 | ||
| @@ -172,6 +172,7 @@ static void __init eukrea_cpuimx35_init(void) | |||
| 172 | imx35_add_imx_uart0(&uart_pdata); | 172 | imx35_add_imx_uart0(&uart_pdata); |
| 173 | imx35_add_mxc_nand(&eukrea_cpuimx35_nand_board_info); | 173 | imx35_add_mxc_nand(&eukrea_cpuimx35_nand_board_info); |
| 174 | 174 | ||
| 175 | eukrea_cpuimx35_i2c_devices[1].irq = gpio_to_irq(TSC2007_IRQGPIO); | ||
| 175 | i2c_register_board_info(0, eukrea_cpuimx35_i2c_devices, | 176 | i2c_register_board_info(0, eukrea_cpuimx35_i2c_devices, |
| 176 | ARRAY_SIZE(eukrea_cpuimx35_i2c_devices)); | 177 | ARRAY_SIZE(eukrea_cpuimx35_i2c_devices)); |
| 177 | imx35_add_imx_i2c0(&eukrea_cpuimx35_i2c0_data); | 178 | imx35_add_imx_i2c0(&eukrea_cpuimx35_i2c0_data); |
diff --git a/arch/arm/mach-imx/mach-cpuimx51sd.c b/arch/arm/mach-imx/mach-cpuimx51sd.c index 1e09de50cbcd..1447cccc4767 100644 --- a/arch/arm/mach-imx/mach-cpuimx51sd.c +++ b/arch/arm/mach-imx/mach-cpuimx51sd.c | |||
| @@ -258,7 +258,7 @@ static struct spi_board_info cpuimx51sd_spi_device[] = { | |||
| 258 | .mode = SPI_MODE_0, | 258 | .mode = SPI_MODE_0, |
| 259 | .chip_select = 0, | 259 | .chip_select = 0, |
| 260 | .platform_data = &mcp251x_info, | 260 | .platform_data = &mcp251x_info, |
| 261 | .irq = IMX_GPIO_TO_IRQ(CAN_IRQGPIO) | 261 | /* irq number is run-time assigned */ |
| 262 | }, | 262 | }, |
| 263 | }; | 263 | }; |
| 264 | 264 | ||
| @@ -309,6 +309,7 @@ static void __init eukrea_cpuimx51sd_init(void) | |||
| 309 | msleep(20); | 309 | msleep(20); |
| 310 | gpio_set_value(CAN_RST, 1); | 310 | gpio_set_value(CAN_RST, 1); |
| 311 | imx51_add_ecspi(0, &cpuimx51sd_ecspi1_pdata); | 311 | imx51_add_ecspi(0, &cpuimx51sd_ecspi1_pdata); |
| 312 | cpuimx51sd_spi_device[0].irq = gpio_to_irq(CAN_IRQGPIO); | ||
| 312 | spi_register_board_info(cpuimx51sd_spi_device, | 313 | spi_register_board_info(cpuimx51sd_spi_device, |
| 313 | ARRAY_SIZE(cpuimx51sd_spi_device)); | 314 | ARRAY_SIZE(cpuimx51sd_spi_device)); |
| 314 | 315 | ||
diff --git a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c index f76edb96a48a..d566a376da40 100644 --- a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c +++ b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c | |||
| @@ -40,6 +40,7 @@ | |||
| 40 | #include <asm/mach/time.h> | 40 | #include <asm/mach/time.h> |
| 41 | #include <asm/system.h> | 41 | #include <asm/system.h> |
| 42 | #include <mach/common.h> | 42 | #include <mach/common.h> |
| 43 | #include <mach/hardware.h> | ||
| 43 | #include <mach/iomux-mx27.h> | 44 | #include <mach/iomux-mx27.h> |
| 44 | 45 | ||
| 45 | #include "devices-imx27.h" | 46 | #include "devices-imx27.h" |
| @@ -47,7 +48,7 @@ | |||
| 47 | #define TVP5150_RSTN (GPIO_PORTC + 18) | 48 | #define TVP5150_RSTN (GPIO_PORTC + 18) |
| 48 | #define TVP5150_PWDN (GPIO_PORTC + 19) | 49 | #define TVP5150_PWDN (GPIO_PORTC + 19) |
| 49 | #define OTG_PHY_CS_GPIO (GPIO_PORTF + 17) | 50 | #define OTG_PHY_CS_GPIO (GPIO_PORTF + 17) |
| 50 | #define SDHC1_IRQ IRQ_GPIOB(25) | 51 | #define SDHC1_IRQ_GPIO IMX_GPIO_NR(2, 25) |
| 51 | 52 | ||
| 52 | #define MOTHERBOARD_BIT2 (GPIO_PORTD + 31) | 53 | #define MOTHERBOARD_BIT2 (GPIO_PORTD + 31) |
| 53 | #define MOTHERBOARD_BIT1 (GPIO_PORTD + 30) | 54 | #define MOTHERBOARD_BIT1 (GPIO_PORTD + 30) |
| @@ -307,14 +308,14 @@ static int visstrim_m10_sdhc1_init(struct device *dev, | |||
| 307 | { | 308 | { |
| 308 | int ret; | 309 | int ret; |
| 309 | 310 | ||
| 310 | ret = request_irq(SDHC1_IRQ, detect_irq, IRQF_TRIGGER_FALLING, | 311 | ret = request_irq(gpio_to_irq(SDHC1_IRQ_GPIO), detect_irq, |
| 311 | "mmc-detect", data); | 312 | IRQF_TRIGGER_FALLING, "mmc-detect", data); |
| 312 | return ret; | 313 | return ret; |
| 313 | } | 314 | } |
| 314 | 315 | ||
| 315 | static void visstrim_m10_sdhc1_exit(struct device *dev, void *data) | 316 | static void visstrim_m10_sdhc1_exit(struct device *dev, void *data) |
| 316 | { | 317 | { |
| 317 | free_irq(SDHC1_IRQ, data); | 318 | free_irq(gpio_to_irq(SDHC1_IRQ_GPIO), data); |
| 318 | } | 319 | } |
| 319 | 320 | ||
| 320 | static const struct imxmmc_platform_data visstrim_m10_sdhc_pdata __initconst = { | 321 | static const struct imxmmc_platform_data visstrim_m10_sdhc_pdata __initconst = { |
diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c index b47e98b7d539..8c2a649192ca 100644 --- a/arch/arm/mach-imx/mach-imx6q.c +++ b/arch/arm/mach-imx/mach-imx6q.c | |||
| @@ -16,7 +16,6 @@ | |||
| 16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
| 17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
| 18 | #include <linux/irq.h> | 18 | #include <linux/irq.h> |
| 19 | #include <linux/irqdomain.h> | ||
| 20 | #include <linux/of.h> | 19 | #include <linux/of.h> |
| 21 | #include <linux/of_address.h> | 20 | #include <linux/of_address.h> |
| 22 | #include <linux/of_irq.h> | 21 | #include <linux/of_irq.h> |
| @@ -136,21 +135,8 @@ static void __init imx6q_map_io(void) | |||
| 136 | imx6q_clock_map_io(); | 135 | imx6q_clock_map_io(); |
| 137 | } | 136 | } |
| 138 | 137 | ||
| 139 | static int __init imx6q_gpio_add_irq_domain(struct device_node *np, | ||
| 140 | struct device_node *interrupt_parent) | ||
| 141 | { | ||
| 142 | static int gpio_irq_base = MXC_GPIO_IRQ_START + ARCH_NR_GPIOS; | ||
| 143 | |||
| 144 | gpio_irq_base -= 32; | ||
| 145 | irq_domain_add_legacy(np, 32, gpio_irq_base, 0, &irq_domain_simple_ops, | ||
| 146 | NULL); | ||
| 147 | |||
| 148 | return 0; | ||
| 149 | } | ||
| 150 | |||
| 151 | static const struct of_device_id imx6q_irq_match[] __initconst = { | 138 | static const struct of_device_id imx6q_irq_match[] __initconst = { |
| 152 | { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, | 139 | { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, |
| 153 | { .compatible = "fsl,imx6q-gpio", .data = imx6q_gpio_add_irq_domain, }, | ||
| 154 | { /* sentinel */ } | 140 | { /* sentinel */ } |
| 155 | }; | 141 | }; |
| 156 | 142 | ||
diff --git a/arch/arm/mach-imx/mach-kzm_arm11_01.c b/arch/arm/mach-imx/mach-kzm_arm11_01.c index 15a26e908260..5d08533ab2c7 100644 --- a/arch/arm/mach-imx/mach-kzm_arm11_01.c +++ b/arch/arm/mach-imx/mach-kzm_arm11_01.c | |||
| @@ -73,7 +73,7 @@ static struct plat_serial8250_port serial_platform_data[] = { | |||
| 73 | { | 73 | { |
| 74 | .membase = KZM_ARM11_IO_ADDRESS(KZM_ARM11_16550), | 74 | .membase = KZM_ARM11_IO_ADDRESS(KZM_ARM11_16550), |
| 75 | .mapbase = KZM_ARM11_16550, | 75 | .mapbase = KZM_ARM11_16550, |
| 76 | .irq = IOMUX_TO_IRQ(MX31_PIN_GPIO1_1), | 76 | /* irq number is run-time assigned */ |
| 77 | .irqflags = IRQ_TYPE_EDGE_RISING, | 77 | .irqflags = IRQ_TYPE_EDGE_RISING, |
| 78 | .uartclk = 14745600, | 78 | .uartclk = 14745600, |
| 79 | .regshift = 0, | 79 | .regshift = 0, |
| @@ -91,8 +91,7 @@ static struct resource serial8250_resources[] = { | |||
| 91 | .flags = IORESOURCE_MEM, | 91 | .flags = IORESOURCE_MEM, |
| 92 | }, | 92 | }, |
| 93 | { | 93 | { |
| 94 | .start = IOMUX_TO_IRQ(MX31_PIN_GPIO1_1), | 94 | /* irq number is run-time assigned */ |
| 95 | .end = IOMUX_TO_IRQ(MX31_PIN_GPIO1_1), | ||
| 96 | .flags = IORESOURCE_IRQ, | 95 | .flags = IORESOURCE_IRQ, |
| 97 | }, | 96 | }, |
| 98 | }; | 97 | }; |
| @@ -125,6 +124,13 @@ static int __init kzm_init_ext_uart(void) | |||
| 125 | tmp |= 0x2; | 124 | tmp |= 0x2; |
| 126 | __raw_writeb(tmp, KZM_ARM11_IO_ADDRESS(KZM_ARM11_CTL1)); | 125 | __raw_writeb(tmp, KZM_ARM11_IO_ADDRESS(KZM_ARM11_CTL1)); |
| 127 | 126 | ||
| 127 | serial_platform_data[0].irq = | ||
| 128 | gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_1)); | ||
| 129 | serial8250_resources[1].start = | ||
| 130 | gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_1)); | ||
| 131 | serial8250_resources[1].end = | ||
| 132 | gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_1)); | ||
| 133 | |||
| 128 | return platform_device_register(&serial_device); | 134 | return platform_device_register(&serial_device); |
| 129 | } | 135 | } |
| 130 | #else | 136 | #else |
| @@ -152,8 +158,7 @@ static struct resource kzm_smsc9118_resources[] = { | |||
| 152 | .flags = IORESOURCE_MEM, | 158 | .flags = IORESOURCE_MEM, |
| 153 | }, | 159 | }, |
| 154 | { | 160 | { |
| 155 | .start = IOMUX_TO_IRQ(MX31_PIN_GPIO1_2), | 161 | /* irq number is run-time assigned */ |
| 156 | .end = IOMUX_TO_IRQ(MX31_PIN_GPIO1_2), | ||
| 157 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE, | 162 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE, |
| 158 | }, | 163 | }, |
| 159 | }; | 164 | }; |
| @@ -184,6 +189,11 @@ static int __init kzm_init_smsc9118(void) | |||
| 184 | 189 | ||
| 185 | regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies)); | 190 | regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies)); |
| 186 | 191 | ||
| 192 | kzm_smsc9118_resources[1].start = | ||
| 193 | gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_2)); | ||
| 194 | kzm_smsc9118_resources[1].end = | ||
| 195 | gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_2)); | ||
| 196 | |||
| 187 | return platform_device_register(&kzm_smsc9118_device); | 197 | return platform_device_register(&kzm_smsc9118_device); |
| 188 | } | 198 | } |
| 189 | #else | 199 | #else |
diff --git a/arch/arm/mach-imx/mach-mx1ads.c b/arch/arm/mach-imx/mach-mx1ads.c index 7274e7928136..667f359a2e8b 100644 --- a/arch/arm/mach-imx/mach-mx1ads.c +++ b/arch/arm/mach-imx/mach-mx1ads.c | |||
| @@ -26,7 +26,6 @@ | |||
| 26 | #include <mach/common.h> | 26 | #include <mach/common.h> |
| 27 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
| 28 | #include <mach/iomux-mx1.h> | 28 | #include <mach/iomux-mx1.h> |
| 29 | #include <mach/irqs.h> | ||
| 30 | 29 | ||
| 31 | #include "devices-imx1.h" | 30 | #include "devices-imx1.h" |
| 32 | 31 | ||
diff --git a/arch/arm/mach-imx/mach-mx21ads.c b/arch/arm/mach-imx/mach-mx21ads.c index 3e7401fca76c..ed22e3fe6ec8 100644 --- a/arch/arm/mach-imx/mach-mx21ads.c +++ b/arch/arm/mach-imx/mach-mx21ads.c | |||
| @@ -38,7 +38,7 @@ | |||
| 38 | (MX21ADS_MMIO_BASE_ADDR + (offset)) | 38 | (MX21ADS_MMIO_BASE_ADDR + (offset)) |
| 39 | 39 | ||
| 40 | #define MX21ADS_CS8900A_MMIO_SIZE 0x200000 | 40 | #define MX21ADS_CS8900A_MMIO_SIZE 0x200000 |
| 41 | #define MX21ADS_CS8900A_IRQ IRQ_GPIOE(11) | 41 | #define MX21ADS_CS8900A_IRQ_GPIO IMX_GPIO_NR(5, 11) |
| 42 | #define MX21ADS_ST16C255_IOBASE_REG MX21ADS_REG_ADDR(0x200000) | 42 | #define MX21ADS_ST16C255_IOBASE_REG MX21ADS_REG_ADDR(0x200000) |
| 43 | #define MX21ADS_VERSION_REG MX21ADS_REG_ADDR(0x400000) | 43 | #define MX21ADS_VERSION_REG MX21ADS_REG_ADDR(0x400000) |
| 44 | #define MX21ADS_IO_REG MX21ADS_REG_ADDR(0x800000) | 44 | #define MX21ADS_IO_REG MX21ADS_REG_ADDR(0x800000) |
| @@ -159,9 +159,10 @@ static struct platform_device mx21ads_nor_mtd_device = { | |||
| 159 | .resource = &mx21ads_flash_resource, | 159 | .resource = &mx21ads_flash_resource, |
| 160 | }; | 160 | }; |
| 161 | 161 | ||
| 162 | static const struct resource mx21ads_cs8900_resources[] __initconst = { | 162 | static struct resource mx21ads_cs8900_resources[] __initdata = { |
| 163 | DEFINE_RES_MEM(MX21_CS1_BASE_ADDR, MX21ADS_CS8900A_MMIO_SIZE), | 163 | DEFINE_RES_MEM(MX21_CS1_BASE_ADDR, MX21ADS_CS8900A_MMIO_SIZE), |
| 164 | DEFINE_RES_IRQ(MX21ADS_CS8900A_IRQ), | 164 | /* irq number is run-time assigned */ |
| 165 | DEFINE_RES_IRQ(-1), | ||
| 165 | }; | 166 | }; |
| 166 | 167 | ||
| 167 | static const struct platform_device_info mx21ads_cs8900_devinfo __initconst = { | 168 | static const struct platform_device_info mx21ads_cs8900_devinfo __initconst = { |
| @@ -241,13 +242,13 @@ static int mx21ads_sdhc_get_ro(struct device *dev) | |||
| 241 | static int mx21ads_sdhc_init(struct device *dev, irq_handler_t detect_irq, | 242 | static int mx21ads_sdhc_init(struct device *dev, irq_handler_t detect_irq, |
| 242 | void *data) | 243 | void *data) |
| 243 | { | 244 | { |
| 244 | return request_irq(IRQ_GPIOD(25), detect_irq, | 245 | return request_irq(gpio_to_irq(IMX_GPIO_NR(4, 25)), detect_irq, |
| 245 | IRQF_TRIGGER_FALLING, "mmc-detect", data); | 246 | IRQF_TRIGGER_FALLING, "mmc-detect", data); |
| 246 | } | 247 | } |
| 247 | 248 | ||
| 248 | static void mx21ads_sdhc_exit(struct device *dev, void *data) | 249 | static void mx21ads_sdhc_exit(struct device *dev, void *data) |
| 249 | { | 250 | { |
| 250 | free_irq(IRQ_GPIOD(25), data); | 251 | free_irq(gpio_to_irq(IMX_GPIO_NR(4, 25)), data); |
| 251 | } | 252 | } |
| 252 | 253 | ||
| 253 | static const struct imxmmc_platform_data mx21ads_sdhc_pdata __initconst = { | 254 | static const struct imxmmc_platform_data mx21ads_sdhc_pdata __initconst = { |
| @@ -304,6 +305,11 @@ static void __init mx21ads_board_init(void) | |||
| 304 | imx21_add_mxc_nand(&mx21ads_nand_board_info); | 305 | imx21_add_mxc_nand(&mx21ads_nand_board_info); |
| 305 | 306 | ||
| 306 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); | 307 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); |
| 308 | |||
| 309 | mx21ads_cs8900_resources[1].start = | ||
| 310 | gpio_to_irq(MX21ADS_CS8900A_IRQ_GPIO); | ||
| 311 | mx21ads_cs8900_resources[1].end = | ||
| 312 | gpio_to_irq(MX21ADS_CS8900A_IRQ_GPIO); | ||
| 307 | platform_device_register_full(&mx21ads_cs8900_devinfo); | 313 | platform_device_register_full(&mx21ads_cs8900_devinfo); |
| 308 | } | 314 | } |
| 309 | 315 | ||
diff --git a/arch/arm/mach-imx/mach-mx27_3ds.c b/arch/arm/mach-imx/mach-mx27_3ds.c index c6d385c52257..71f7c58ee4b6 100644 --- a/arch/arm/mach-imx/mach-mx27_3ds.c +++ b/arch/arm/mach-imx/mach-mx27_3ds.c | |||
| @@ -40,7 +40,6 @@ | |||
| 40 | #include <mach/common.h> | 40 | #include <mach/common.h> |
| 41 | #include <mach/iomux-mx27.h> | 41 | #include <mach/iomux-mx27.h> |
| 42 | #include <mach/ulpi.h> | 42 | #include <mach/ulpi.h> |
| 43 | #include <mach/irqs.h> | ||
| 44 | #include <mach/3ds_debugboard.h> | 43 | #include <mach/3ds_debugboard.h> |
| 45 | 44 | ||
| 46 | #include "devices-imx27.h" | 45 | #include "devices-imx27.h" |
| @@ -48,7 +47,6 @@ | |||
| 48 | #define SD1_EN_GPIO IMX_GPIO_NR(2, 25) | 47 | #define SD1_EN_GPIO IMX_GPIO_NR(2, 25) |
| 49 | #define OTG_PHY_RESET_GPIO IMX_GPIO_NR(2, 23) | 48 | #define OTG_PHY_RESET_GPIO IMX_GPIO_NR(2, 23) |
| 50 | #define SPI2_SS0 IMX_GPIO_NR(4, 21) | 49 | #define SPI2_SS0 IMX_GPIO_NR(4, 21) |
| 51 | #define EXPIO_PARENT_INT gpio_to_irq(IMX_GPIO_NR(3, 28)) | ||
| 52 | #define PMIC_INT IMX_GPIO_NR(3, 14) | 50 | #define PMIC_INT IMX_GPIO_NR(3, 14) |
| 53 | #define SPI1_SS0 IMX_GPIO_NR(4, 28) | 51 | #define SPI1_SS0 IMX_GPIO_NR(4, 28) |
| 54 | #define SD1_CD IMX_GPIO_NR(2, 26) | 52 | #define SD1_CD IMX_GPIO_NR(2, 26) |
| @@ -445,7 +443,7 @@ static struct spi_board_info mx27_3ds_spi_devs[] __initdata = { | |||
| 445 | .bus_num = 1, | 443 | .bus_num = 1, |
| 446 | .chip_select = 0, /* SS0 */ | 444 | .chip_select = 0, /* SS0 */ |
| 447 | .platform_data = &mc13783_pdata, | 445 | .platform_data = &mc13783_pdata, |
| 448 | .irq = IMX_GPIO_TO_IRQ(PMIC_INT), | 446 | /* irq number is run-time assigned */ |
| 449 | .mode = SPI_CS_HIGH, | 447 | .mode = SPI_CS_HIGH, |
| 450 | }, { | 448 | }, { |
| 451 | .modalias = "l4f00242t03", | 449 | .modalias = "l4f00242t03", |
| @@ -496,10 +494,11 @@ static void __init mx27pdk_init(void) | |||
| 496 | 494 | ||
| 497 | imx27_add_spi_imx1(&spi2_pdata); | 495 | imx27_add_spi_imx1(&spi2_pdata); |
| 498 | imx27_add_spi_imx0(&spi1_pdata); | 496 | imx27_add_spi_imx0(&spi1_pdata); |
| 497 | mx27_3ds_spi_devs[0].irq = gpio_to_irq(PMIC_INT); | ||
| 499 | spi_register_board_info(mx27_3ds_spi_devs, | 498 | spi_register_board_info(mx27_3ds_spi_devs, |
| 500 | ARRAY_SIZE(mx27_3ds_spi_devs)); | 499 | ARRAY_SIZE(mx27_3ds_spi_devs)); |
| 501 | 500 | ||
| 502 | if (mxc_expio_init(MX27_CS5_BASE_ADDR, EXPIO_PARENT_INT)) | 501 | if (mxc_expio_init(MX27_CS5_BASE_ADDR, IMX_GPIO_NR(3, 28))) |
| 503 | pr_warn("Init of the debugboard failed, all devices on the debugboard are unusable.\n"); | 502 | pr_warn("Init of the debugboard failed, all devices on the debugboard are unusable.\n"); |
| 504 | imx27_add_imx_i2c(0, &mx27_3ds_i2c0_data); | 503 | imx27_add_imx_i2c(0, &mx27_3ds_i2c0_data); |
| 505 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 504 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
diff --git a/arch/arm/mach-imx/mach-mx27ads.c b/arch/arm/mach-imx/mach-mx27ads.c index 0228d2e07fe0..78b6bb5fcc6a 100644 --- a/arch/arm/mach-imx/mach-mx27ads.c +++ b/arch/arm/mach-imx/mach-mx27ads.c | |||
| @@ -246,25 +246,25 @@ static const struct imx_fb_platform_data mx27ads_fb_data __initconst = { | |||
| 246 | static int mx27ads_sdhc1_init(struct device *dev, irq_handler_t detect_irq, | 246 | static int mx27ads_sdhc1_init(struct device *dev, irq_handler_t detect_irq, |
| 247 | void *data) | 247 | void *data) |
| 248 | { | 248 | { |
| 249 | return request_irq(IRQ_GPIOE(21), detect_irq, IRQF_TRIGGER_RISING, | 249 | return request_irq(gpio_to_irq(IMX_GPIO_NR(5, 21)), detect_irq, |
| 250 | "sdhc1-card-detect", data); | 250 | IRQF_TRIGGER_RISING, "sdhc1-card-detect", data); |
| 251 | } | 251 | } |
| 252 | 252 | ||
| 253 | static int mx27ads_sdhc2_init(struct device *dev, irq_handler_t detect_irq, | 253 | static int mx27ads_sdhc2_init(struct device *dev, irq_handler_t detect_irq, |
| 254 | void *data) | 254 | void *data) |
| 255 | { | 255 | { |
| 256 | return request_irq(IRQ_GPIOB(7), detect_irq, IRQF_TRIGGER_RISING, | 256 | return request_irq(gpio_to_irq(IMX_GPIO_NR(2, 7)), detect_irq, |
| 257 | "sdhc2-card-detect", data); | 257 | IRQF_TRIGGER_RISING, "sdhc2-card-detect", data); |
| 258 | } | 258 | } |
| 259 | 259 | ||
| 260 | static void mx27ads_sdhc1_exit(struct device *dev, void *data) | 260 | static void mx27ads_sdhc1_exit(struct device *dev, void *data) |
| 261 | { | 261 | { |
| 262 | free_irq(IRQ_GPIOE(21), data); | 262 | free_irq(gpio_to_irq(IMX_GPIO_NR(5, 21)), data); |
| 263 | } | 263 | } |
| 264 | 264 | ||
| 265 | static void mx27ads_sdhc2_exit(struct device *dev, void *data) | 265 | static void mx27ads_sdhc2_exit(struct device *dev, void *data) |
| 266 | { | 266 | { |
| 267 | free_irq(IRQ_GPIOB(7), data); | 267 | free_irq(gpio_to_irq(IMX_GPIO_NR(2, 7)), data); |
| 268 | } | 268 | } |
| 269 | 269 | ||
| 270 | static const struct imxmmc_platform_data sdhc1_pdata __initconst = { | 270 | static const struct imxmmc_platform_data sdhc1_pdata __initconst = { |
diff --git a/arch/arm/mach-imx/mach-mx31_3ds.c b/arch/arm/mach-imx/mach-mx31_3ds.c index 4eafdf275ea2..f37d9b5774ab 100644 --- a/arch/arm/mach-imx/mach-mx31_3ds.c +++ b/arch/arm/mach-imx/mach-mx31_3ds.c | |||
| @@ -44,9 +44,6 @@ | |||
| 44 | 44 | ||
| 45 | #include "devices-imx31.h" | 45 | #include "devices-imx31.h" |
| 46 | 46 | ||
| 47 | /* CPLD IRQ line for external uart, external ethernet etc */ | ||
| 48 | #define EXPIO_PARENT_INT IOMUX_TO_IRQ(MX31_PIN_GPIO1_1) | ||
| 49 | |||
| 50 | static int mx31_3ds_pins[] = { | 47 | static int mx31_3ds_pins[] = { |
| 51 | /* UART1 */ | 48 | /* UART1 */ |
| 52 | MX31_PIN_CTS1__CTS1, | 49 | MX31_PIN_CTS1__CTS1, |
| @@ -277,10 +274,6 @@ static const struct fb_videomode fb_modedb[] = { | |||
| 277 | }, | 274 | }, |
| 278 | }; | 275 | }; |
| 279 | 276 | ||
| 280 | static struct ipu_platform_data mx3_ipu_data = { | ||
| 281 | .irq_base = MXC_IPU_IRQ_START, | ||
| 282 | }; | ||
| 283 | |||
| 284 | static struct mx3fb_platform_data mx3fb_pdata __initdata = { | 277 | static struct mx3fb_platform_data mx3fb_pdata __initdata = { |
| 285 | .name = "Epson-VGA", | 278 | .name = "Epson-VGA", |
| 286 | .mode = fb_modedb, | 279 | .mode = fb_modedb, |
| @@ -317,7 +310,7 @@ static int mx31_3ds_sdhc1_init(struct device *dev, | |||
| 317 | return ret; | 310 | return ret; |
| 318 | } | 311 | } |
| 319 | 312 | ||
| 320 | ret = request_irq(IOMUX_TO_IRQ(MX31_PIN_GPIO3_1), | 313 | ret = request_irq(gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO3_1)), |
| 321 | detect_irq, IRQF_DISABLED | | 314 | detect_irq, IRQF_DISABLED | |
| 322 | IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, | 315 | IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, |
| 323 | "sdhc1-detect", data); | 316 | "sdhc1-detect", data); |
| @@ -336,7 +329,7 @@ gpio_free: | |||
| 336 | 329 | ||
| 337 | static void mx31_3ds_sdhc1_exit(struct device *dev, void *data) | 330 | static void mx31_3ds_sdhc1_exit(struct device *dev, void *data) |
| 338 | { | 331 | { |
| 339 | free_irq(IOMUX_TO_IRQ(MX31_PIN_GPIO3_1), data); | 332 | free_irq(gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO3_1)), data); |
| 340 | gpio_free_array(mx31_3ds_sdhc1_gpios, | 333 | gpio_free_array(mx31_3ds_sdhc1_gpios, |
| 341 | ARRAY_SIZE(mx31_3ds_sdhc1_gpios)); | 334 | ARRAY_SIZE(mx31_3ds_sdhc1_gpios)); |
| 342 | } | 335 | } |
| @@ -539,7 +532,7 @@ static struct spi_board_info mx31_3ds_spi_devs[] __initdata = { | |||
| 539 | .bus_num = 1, | 532 | .bus_num = 1, |
| 540 | .chip_select = 1, /* SS2 */ | 533 | .chip_select = 1, /* SS2 */ |
| 541 | .platform_data = &mc13783_pdata, | 534 | .platform_data = &mc13783_pdata, |
| 542 | .irq = IOMUX_TO_IRQ(MX31_PIN_GPIO1_3), | 535 | /* irq number is run-time assigned */ |
| 543 | .mode = SPI_CS_HIGH, | 536 | .mode = SPI_CS_HIGH, |
| 544 | }, { | 537 | }, { |
| 545 | .modalias = "l4f00242t03", | 538 | .modalias = "l4f00242t03", |
| @@ -714,6 +707,7 @@ static void __init mx31_3ds_init(void) | |||
| 714 | imx31_add_mxc_nand(&mx31_3ds_nand_board_info); | 707 | imx31_add_mxc_nand(&mx31_3ds_nand_board_info); |
| 715 | 708 | ||
| 716 | imx31_add_spi_imx1(&spi1_pdata); | 709 | imx31_add_spi_imx1(&spi1_pdata); |
| 710 | mx31_3ds_spi_devs[0].irq = gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3)); | ||
| 717 | spi_register_board_info(mx31_3ds_spi_devs, | 711 | spi_register_board_info(mx31_3ds_spi_devs, |
| 718 | ARRAY_SIZE(mx31_3ds_spi_devs)); | 712 | ARRAY_SIZE(mx31_3ds_spi_devs)); |
| 719 | 713 | ||
| @@ -736,7 +730,7 @@ static void __init mx31_3ds_init(void) | |||
| 736 | if (!otg_mode_host) | 730 | if (!otg_mode_host) |
| 737 | imx31_add_fsl_usb2_udc(&usbotg_pdata); | 731 | imx31_add_fsl_usb2_udc(&usbotg_pdata); |
| 738 | 732 | ||
| 739 | if (mxc_expio_init(MX31_CS5_BASE_ADDR, EXPIO_PARENT_INT)) | 733 | if (mxc_expio_init(MX31_CS5_BASE_ADDR, IOMUX_TO_GPIO(MX31_PIN_GPIO1_1))) |
| 740 | printk(KERN_WARNING "Init of the debug board failed, all " | 734 | printk(KERN_WARNING "Init of the debug board failed, all " |
| 741 | "devices on the debug board are unusable.\n"); | 735 | "devices on the debug board are unusable.\n"); |
| 742 | imx31_add_imx2_wdt(NULL); | 736 | imx31_add_imx2_wdt(NULL); |
| @@ -744,7 +738,7 @@ static void __init mx31_3ds_init(void) | |||
| 744 | imx31_add_mxc_mmc(0, &sdhc1_pdata); | 738 | imx31_add_mxc_mmc(0, &sdhc1_pdata); |
| 745 | 739 | ||
| 746 | imx31_add_spi_imx0(&spi0_pdata); | 740 | imx31_add_spi_imx0(&spi0_pdata); |
| 747 | imx31_add_ipu_core(&mx3_ipu_data); | 741 | imx31_add_ipu_core(); |
| 748 | imx31_add_mx3_sdc_fb(&mx3fb_pdata); | 742 | imx31_add_mx3_sdc_fb(&mx3fb_pdata); |
| 749 | 743 | ||
| 750 | /* CSI */ | 744 | /* CSI */ |
diff --git a/arch/arm/mach-imx/mach-mx31ads.c b/arch/arm/mach-imx/mach-mx31ads.c index 4518e5448227..d37f4809c556 100644 --- a/arch/arm/mach-imx/mach-mx31ads.c +++ b/arch/arm/mach-imx/mach-mx31ads.c | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | #include <linux/gpio.h> | 21 | #include <linux/gpio.h> |
| 22 | #include <linux/i2c.h> | 22 | #include <linux/i2c.h> |
| 23 | #include <linux/irq.h> | 23 | #include <linux/irq.h> |
| 24 | #include <linux/irqdomain.h> | ||
| 24 | 25 | ||
| 25 | #include <asm/mach-types.h> | 26 | #include <asm/mach-types.h> |
| 26 | #include <asm/mach/arch.h> | 27 | #include <asm/mach/arch.h> |
| @@ -62,20 +63,18 @@ | |||
| 62 | #define PBC_INTSTATUS_REG (PBC_INTSTATUS + PBC_BASE_ADDRESS) | 63 | #define PBC_INTSTATUS_REG (PBC_INTSTATUS + PBC_BASE_ADDRESS) |
| 63 | #define PBC_INTMASK_SET_REG (PBC_INTMASK_SET + PBC_BASE_ADDRESS) | 64 | #define PBC_INTMASK_SET_REG (PBC_INTMASK_SET + PBC_BASE_ADDRESS) |
| 64 | #define PBC_INTMASK_CLEAR_REG (PBC_INTMASK_CLEAR + PBC_BASE_ADDRESS) | 65 | #define PBC_INTMASK_CLEAR_REG (PBC_INTMASK_CLEAR + PBC_BASE_ADDRESS) |
| 65 | #define EXPIO_PARENT_INT IOMUX_TO_IRQ(MX31_PIN_GPIO1_4) | ||
| 66 | 66 | ||
| 67 | #define MXC_EXP_IO_BASE MXC_BOARD_IRQ_START | 67 | #define EXPIO_INT_XUART_INTA 10 |
| 68 | #define MXC_IRQ_TO_EXPIO(irq) ((irq) - MXC_EXP_IO_BASE) | 68 | #define EXPIO_INT_XUART_INTB 11 |
| 69 | |||
| 70 | #define EXPIO_INT_XUART_INTA (MXC_EXP_IO_BASE + 10) | ||
| 71 | #define EXPIO_INT_XUART_INTB (MXC_EXP_IO_BASE + 11) | ||
| 72 | 69 | ||
| 73 | #define MXC_MAX_EXP_IO_LINES 16 | 70 | #define MXC_MAX_EXP_IO_LINES 16 |
| 74 | 71 | ||
| 75 | /* CS8900 */ | 72 | /* CS8900 */ |
| 76 | #define EXPIO_INT_ENET_INT (MXC_EXP_IO_BASE + 8) | 73 | #define EXPIO_INT_ENET_INT 8 |
| 77 | #define CS4_CS8900_MMIO_START 0x20000 | 74 | #define CS4_CS8900_MMIO_START 0x20000 |
| 78 | 75 | ||
| 76 | static struct irq_domain *domain; | ||
| 77 | |||
| 79 | /* | 78 | /* |
| 80 | * The serial port definition structure. | 79 | * The serial port definition structure. |
| 81 | */ | 80 | */ |
| @@ -83,7 +82,6 @@ static struct plat_serial8250_port serial_platform_data[] = { | |||
| 83 | { | 82 | { |
| 84 | .membase = (void *)(PBC_BASE_ADDRESS + PBC_SC16C652_UARTA), | 83 | .membase = (void *)(PBC_BASE_ADDRESS + PBC_SC16C652_UARTA), |
| 85 | .mapbase = (unsigned long)(MX31_CS4_BASE_ADDR + PBC_SC16C652_UARTA), | 84 | .mapbase = (unsigned long)(MX31_CS4_BASE_ADDR + PBC_SC16C652_UARTA), |
| 86 | .irq = EXPIO_INT_XUART_INTA, | ||
| 87 | .uartclk = 14745600, | 85 | .uartclk = 14745600, |
| 88 | .regshift = 0, | 86 | .regshift = 0, |
| 89 | .iotype = UPIO_MEM, | 87 | .iotype = UPIO_MEM, |
| @@ -91,7 +89,6 @@ static struct plat_serial8250_port serial_platform_data[] = { | |||
| 91 | }, { | 89 | }, { |
| 92 | .membase = (void *)(PBC_BASE_ADDRESS + PBC_SC16C652_UARTB), | 90 | .membase = (void *)(PBC_BASE_ADDRESS + PBC_SC16C652_UARTB), |
| 93 | .mapbase = (unsigned long)(MX31_CS4_BASE_ADDR + PBC_SC16C652_UARTB), | 91 | .mapbase = (unsigned long)(MX31_CS4_BASE_ADDR + PBC_SC16C652_UARTB), |
| 94 | .irq = EXPIO_INT_XUART_INTB, | ||
| 95 | .uartclk = 14745600, | 92 | .uartclk = 14745600, |
| 96 | .regshift = 0, | 93 | .regshift = 0, |
| 97 | .iotype = UPIO_MEM, | 94 | .iotype = UPIO_MEM, |
| @@ -108,9 +105,9 @@ static struct platform_device serial_device = { | |||
| 108 | }, | 105 | }, |
| 109 | }; | 106 | }; |
| 110 | 107 | ||
| 111 | static const struct resource mx31ads_cs8900_resources[] __initconst = { | 108 | static struct resource mx31ads_cs8900_resources[] __initdata = { |
| 112 | DEFINE_RES_MEM(MX31_CS4_BASE_ADDR + CS4_CS8900_MMIO_START, SZ_64K), | 109 | DEFINE_RES_MEM(MX31_CS4_BASE_ADDR + CS4_CS8900_MMIO_START, SZ_64K), |
| 113 | DEFINE_RES_IRQ(EXPIO_INT_ENET_INT), | 110 | DEFINE_RES_IRQ(-1), |
| 114 | }; | 111 | }; |
| 115 | 112 | ||
| 116 | static const struct platform_device_info mx31ads_cs8900_devinfo __initconst = { | 113 | static const struct platform_device_info mx31ads_cs8900_devinfo __initconst = { |
| @@ -122,11 +119,19 @@ static const struct platform_device_info mx31ads_cs8900_devinfo __initconst = { | |||
| 122 | 119 | ||
| 123 | static int __init mxc_init_extuart(void) | 120 | static int __init mxc_init_extuart(void) |
| 124 | { | 121 | { |
| 122 | serial_platform_data[0].irq = irq_find_mapping(domain, | ||
| 123 | EXPIO_INT_XUART_INTA); | ||
| 124 | serial_platform_data[1].irq = irq_find_mapping(domain, | ||
| 125 | EXPIO_INT_XUART_INTB); | ||
| 125 | return platform_device_register(&serial_device); | 126 | return platform_device_register(&serial_device); |
| 126 | } | 127 | } |
| 127 | 128 | ||
| 128 | static void __init mxc_init_ext_ethernet(void) | 129 | static void __init mxc_init_ext_ethernet(void) |
| 129 | { | 130 | { |
| 131 | mx31ads_cs8900_resources[1].start = | ||
| 132 | irq_find_mapping(domain, EXPIO_INT_ENET_INT); | ||
| 133 | mx31ads_cs8900_resources[1].end = | ||
| 134 | irq_find_mapping(domain, EXPIO_INT_ENET_INT); | ||
| 130 | platform_device_register_full( | 135 | platform_device_register_full( |
| 131 | (struct platform_device_info *)&mx31ads_cs8900_devinfo); | 136 | (struct platform_device_info *)&mx31ads_cs8900_devinfo); |
| 132 | } | 137 | } |
| @@ -157,12 +162,12 @@ static void mx31ads_expio_irq_handler(u32 irq, struct irq_desc *desc) | |||
| 157 | imr_val = __raw_readw(PBC_INTMASK_SET_REG); | 162 | imr_val = __raw_readw(PBC_INTMASK_SET_REG); |
| 158 | int_valid = __raw_readw(PBC_INTSTATUS_REG) & imr_val; | 163 | int_valid = __raw_readw(PBC_INTSTATUS_REG) & imr_val; |
| 159 | 164 | ||
| 160 | expio_irq = MXC_EXP_IO_BASE; | 165 | expio_irq = 0; |
| 161 | for (; int_valid != 0; int_valid >>= 1, expio_irq++) { | 166 | for (; int_valid != 0; int_valid >>= 1, expio_irq++) { |
| 162 | if ((int_valid & 1) == 0) | 167 | if ((int_valid & 1) == 0) |
| 163 | continue; | 168 | continue; |
| 164 | 169 | ||
| 165 | generic_handle_irq(expio_irq); | 170 | generic_handle_irq(irq_find_mapping(domain, expio_irq)); |
| 166 | } | 171 | } |
| 167 | } | 172 | } |
| 168 | 173 | ||
| @@ -172,7 +177,7 @@ static void mx31ads_expio_irq_handler(u32 irq, struct irq_desc *desc) | |||
| 172 | */ | 177 | */ |
| 173 | static void expio_mask_irq(struct irq_data *d) | 178 | static void expio_mask_irq(struct irq_data *d) |
| 174 | { | 179 | { |
| 175 | u32 expio = MXC_IRQ_TO_EXPIO(d->irq); | 180 | u32 expio = d->hwirq; |
| 176 | /* mask the interrupt */ | 181 | /* mask the interrupt */ |
| 177 | __raw_writew(1 << expio, PBC_INTMASK_CLEAR_REG); | 182 | __raw_writew(1 << expio, PBC_INTMASK_CLEAR_REG); |
| 178 | __raw_readw(PBC_INTMASK_CLEAR_REG); | 183 | __raw_readw(PBC_INTMASK_CLEAR_REG); |
| @@ -184,7 +189,7 @@ static void expio_mask_irq(struct irq_data *d) | |||
| 184 | */ | 189 | */ |
| 185 | static void expio_ack_irq(struct irq_data *d) | 190 | static void expio_ack_irq(struct irq_data *d) |
| 186 | { | 191 | { |
| 187 | u32 expio = MXC_IRQ_TO_EXPIO(d->irq); | 192 | u32 expio = d->hwirq; |
| 188 | /* clear the interrupt status */ | 193 | /* clear the interrupt status */ |
| 189 | __raw_writew(1 << expio, PBC_INTSTATUS_REG); | 194 | __raw_writew(1 << expio, PBC_INTSTATUS_REG); |
| 190 | } | 195 | } |
| @@ -195,7 +200,7 @@ static void expio_ack_irq(struct irq_data *d) | |||
| 195 | */ | 200 | */ |
| 196 | static void expio_unmask_irq(struct irq_data *d) | 201 | static void expio_unmask_irq(struct irq_data *d) |
| 197 | { | 202 | { |
| 198 | u32 expio = MXC_IRQ_TO_EXPIO(d->irq); | 203 | u32 expio = d->hwirq; |
| 199 | /* unmask the interrupt */ | 204 | /* unmask the interrupt */ |
| 200 | __raw_writew(1 << expio, PBC_INTMASK_SET_REG); | 205 | __raw_writew(1 << expio, PBC_INTMASK_SET_REG); |
| 201 | } | 206 | } |
| @@ -209,7 +214,8 @@ static struct irq_chip expio_irq_chip = { | |||
| 209 | 214 | ||
| 210 | static void __init mx31ads_init_expio(void) | 215 | static void __init mx31ads_init_expio(void) |
| 211 | { | 216 | { |
| 212 | int i; | 217 | int irq_base; |
| 218 | int i, irq; | ||
| 213 | 219 | ||
| 214 | printk(KERN_INFO "MX31ADS EXPIO(CPLD) hardware\n"); | 220 | printk(KERN_INFO "MX31ADS EXPIO(CPLD) hardware\n"); |
| 215 | 221 | ||
| @@ -221,13 +227,21 @@ static void __init mx31ads_init_expio(void) | |||
| 221 | /* disable the interrupt and clear the status */ | 227 | /* disable the interrupt and clear the status */ |
| 222 | __raw_writew(0xFFFF, PBC_INTMASK_CLEAR_REG); | 228 | __raw_writew(0xFFFF, PBC_INTMASK_CLEAR_REG); |
| 223 | __raw_writew(0xFFFF, PBC_INTSTATUS_REG); | 229 | __raw_writew(0xFFFF, PBC_INTSTATUS_REG); |
| 224 | for (i = MXC_EXP_IO_BASE; i < (MXC_EXP_IO_BASE + MXC_MAX_EXP_IO_LINES); | 230 | |
| 225 | i++) { | 231 | irq_base = irq_alloc_descs(-1, 0, MXC_MAX_EXP_IO_LINES, numa_node_id()); |
| 232 | WARN_ON(irq_base < 0); | ||
| 233 | |||
| 234 | domain = irq_domain_add_legacy(NULL, MXC_MAX_EXP_IO_LINES, irq_base, 0, | ||
| 235 | &irq_domain_simple_ops, NULL); | ||
| 236 | WARN_ON(!domain); | ||
| 237 | |||
| 238 | for (i = irq_base; i < irq_base + MXC_MAX_EXP_IO_LINES; i++) { | ||
| 226 | irq_set_chip_and_handler(i, &expio_irq_chip, handle_level_irq); | 239 | irq_set_chip_and_handler(i, &expio_irq_chip, handle_level_irq); |
| 227 | set_irq_flags(i, IRQF_VALID); | 240 | set_irq_flags(i, IRQF_VALID); |
| 228 | } | 241 | } |
| 229 | irq_set_irq_type(EXPIO_PARENT_INT, IRQ_TYPE_LEVEL_HIGH); | 242 | irq = gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_4)); |
| 230 | irq_set_chained_handler(EXPIO_PARENT_INT, mx31ads_expio_irq_handler); | 243 | irq_set_irq_type(irq, IRQ_TYPE_LEVEL_HIGH); |
| 244 | irq_set_chained_handler(irq, mx31ads_expio_irq_handler); | ||
| 231 | } | 245 | } |
| 232 | 246 | ||
| 233 | #ifdef CONFIG_MACH_MX31ADS_WM1133_EV1 | 247 | #ifdef CONFIG_MACH_MX31ADS_WM1133_EV1 |
| @@ -479,7 +493,6 @@ static int mx31_wm8350_init(struct wm8350 *wm8350) | |||
| 479 | 493 | ||
| 480 | static struct wm8350_platform_data __initdata mx31_wm8350_pdata = { | 494 | static struct wm8350_platform_data __initdata mx31_wm8350_pdata = { |
| 481 | .init = mx31_wm8350_init, | 495 | .init = mx31_wm8350_init, |
| 482 | .irq_base = MXC_BOARD_IRQ_START + MXC_MAX_EXP_IO_LINES, | ||
| 483 | }; | 496 | }; |
| 484 | #endif | 497 | #endif |
| 485 | 498 | ||
| @@ -488,13 +501,17 @@ static struct i2c_board_info __initdata mx31ads_i2c1_devices[] = { | |||
| 488 | { | 501 | { |
| 489 | I2C_BOARD_INFO("wm8350", 0x1a), | 502 | I2C_BOARD_INFO("wm8350", 0x1a), |
| 490 | .platform_data = &mx31_wm8350_pdata, | 503 | .platform_data = &mx31_wm8350_pdata, |
| 491 | .irq = IOMUX_TO_IRQ(MX31_PIN_GPIO1_3), | 504 | /* irq number is run-time assigned */ |
| 492 | }, | 505 | }, |
| 493 | #endif | 506 | #endif |
| 494 | }; | 507 | }; |
| 495 | 508 | ||
| 496 | static void __init mxc_init_i2c(void) | 509 | static void __init mxc_init_i2c(void) |
| 497 | { | 510 | { |
| 511 | #ifdef CONFIG_MACH_MX31ADS_WM1133_EV1 | ||
| 512 | mx31ads_i2c1_devices[0].irq = | ||
| 513 | gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3)); | ||
| 514 | #endif | ||
| 498 | i2c_register_board_info(1, mx31ads_i2c1_devices, | 515 | i2c_register_board_info(1, mx31ads_i2c1_devices, |
| 499 | ARRAY_SIZE(mx31ads_i2c1_devices)); | 516 | ARRAY_SIZE(mx31ads_i2c1_devices)); |
| 500 | 517 | ||
diff --git a/arch/arm/mach-imx/mach-mx31lilly.c b/arch/arm/mach-imx/mach-mx31lilly.c index 83714b0cc290..34b9bf075daf 100644 --- a/arch/arm/mach-imx/mach-mx31lilly.c +++ b/arch/arm/mach-imx/mach-mx31lilly.c | |||
| @@ -65,8 +65,7 @@ static struct resource smsc91x_resources[] = { | |||
| 65 | .flags = IORESOURCE_MEM, | 65 | .flags = IORESOURCE_MEM, |
| 66 | }, | 66 | }, |
| 67 | { | 67 | { |
| 68 | .start = IOMUX_TO_IRQ(MX31_PIN_GPIO1_0), | 68 | /* irq number is run-time assigned */ |
| 69 | .end = IOMUX_TO_IRQ(MX31_PIN_GPIO1_0), | ||
| 70 | .flags = IORESOURCE_IRQ | IRQF_TRIGGER_FALLING, | 69 | .flags = IORESOURCE_IRQ | IRQF_TRIGGER_FALLING, |
| 71 | } | 70 | } |
| 72 | }; | 71 | }; |
| @@ -233,7 +232,7 @@ static struct spi_board_info mc13783_dev __initdata = { | |||
| 233 | .bus_num = 1, | 232 | .bus_num = 1, |
| 234 | .chip_select = 0, | 233 | .chip_select = 0, |
| 235 | .platform_data = &mc13783_pdata, | 234 | .platform_data = &mc13783_pdata, |
| 236 | .irq = IOMUX_TO_IRQ(MX31_PIN_GPIO1_3), | 235 | /* irq number is run-time assigned */ |
| 237 | }; | 236 | }; |
| 238 | 237 | ||
| 239 | static struct platform_device *devices[] __initdata = { | 238 | static struct platform_device *devices[] __initdata = { |
| @@ -285,10 +284,15 @@ static void __init mx31lilly_board_init(void) | |||
| 285 | 284 | ||
| 286 | imx31_add_spi_imx0(&spi0_pdata); | 285 | imx31_add_spi_imx0(&spi0_pdata); |
| 287 | imx31_add_spi_imx1(&spi1_pdata); | 286 | imx31_add_spi_imx1(&spi1_pdata); |
| 287 | mc13783_dev.irq = gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3)); | ||
| 288 | spi_register_board_info(&mc13783_dev, 1); | 288 | spi_register_board_info(&mc13783_dev, 1); |
| 289 | 289 | ||
| 290 | regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies)); | 290 | regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies)); |
| 291 | 291 | ||
| 292 | smsc91x_resources[1].start = | ||
| 293 | gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_0)); | ||
| 294 | smsc91x_resources[1].end = | ||
| 295 | gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_0)); | ||
| 292 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 296 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
| 293 | 297 | ||
| 294 | /* USB */ | 298 | /* USB */ |
diff --git a/arch/arm/mach-imx/mach-mx31lite.c b/arch/arm/mach-imx/mach-mx31lite.c index 686c60587980..c8785b39eaed 100644 --- a/arch/arm/mach-imx/mach-mx31lite.c +++ b/arch/arm/mach-imx/mach-mx31lite.c | |||
| @@ -43,7 +43,6 @@ | |||
| 43 | #include <mach/common.h> | 43 | #include <mach/common.h> |
| 44 | #include <mach/board-mx31lite.h> | 44 | #include <mach/board-mx31lite.h> |
| 45 | #include <mach/iomux-mx3.h> | 45 | #include <mach/iomux-mx3.h> |
| 46 | #include <mach/irqs.h> | ||
| 47 | #include <mach/ulpi.h> | 46 | #include <mach/ulpi.h> |
| 48 | 47 | ||
| 49 | #include "devices-imx31.h" | 48 | #include "devices-imx31.h" |
| @@ -83,8 +82,7 @@ static struct resource smsc911x_resources[] = { | |||
| 83 | .end = MX31_CS4_BASE_ADDR + 0x100, | 82 | .end = MX31_CS4_BASE_ADDR + 0x100, |
| 84 | .flags = IORESOURCE_MEM, | 83 | .flags = IORESOURCE_MEM, |
| 85 | }, { | 84 | }, { |
| 86 | .start = IOMUX_TO_IRQ(MX31_PIN_SFS6), | 85 | /* irq number is run-time assigned */ |
| 87 | .end = IOMUX_TO_IRQ(MX31_PIN_SFS6), | ||
| 88 | .flags = IORESOURCE_IRQ, | 86 | .flags = IORESOURCE_IRQ, |
| 89 | }, | 87 | }, |
| 90 | }; | 88 | }; |
| @@ -124,7 +122,7 @@ static struct spi_board_info mc13783_spi_dev __initdata = { | |||
| 124 | .bus_num = 1, | 122 | .bus_num = 1, |
| 125 | .chip_select = 0, | 123 | .chip_select = 0, |
| 126 | .platform_data = &mc13783_pdata, | 124 | .platform_data = &mc13783_pdata, |
| 127 | .irq = IOMUX_TO_IRQ(MX31_PIN_GPIO1_3), | 125 | /* irq number is run-time assigned */ |
| 128 | }; | 126 | }; |
| 129 | 127 | ||
| 130 | /* | 128 | /* |
| @@ -258,6 +256,7 @@ static void __init mx31lite_init(void) | |||
| 258 | imx31_add_mxc_nand(&mx31lite_nand_board_info); | 256 | imx31_add_mxc_nand(&mx31lite_nand_board_info); |
| 259 | 257 | ||
| 260 | imx31_add_spi_imx1(&spi1_pdata); | 258 | imx31_add_spi_imx1(&spi1_pdata); |
| 259 | mc13783_spi_dev.irq = gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3)); | ||
| 261 | spi_register_board_info(&mc13783_spi_dev, 1); | 260 | spi_register_board_info(&mc13783_spi_dev, 1); |
| 262 | 261 | ||
| 263 | /* USB */ | 262 | /* USB */ |
| @@ -274,6 +273,10 @@ static void __init mx31lite_init(void) | |||
| 274 | pr_warning("could not get LAN irq gpio\n"); | 273 | pr_warning("could not get LAN irq gpio\n"); |
| 275 | else { | 274 | else { |
| 276 | gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_SFS6)); | 275 | gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_SFS6)); |
| 276 | smsc911x_resources[1].start = | ||
| 277 | gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_SFS6)); | ||
| 278 | smsc911x_resources[1].end = | ||
| 279 | gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_SFS6)); | ||
| 277 | platform_device_register(&smsc911x_device); | 280 | platform_device_register(&smsc911x_device); |
| 278 | } | 281 | } |
| 279 | } | 282 | } |
diff --git a/arch/arm/mach-imx/mach-mx31moboard.c b/arch/arm/mach-imx/mach-mx31moboard.c index 016791f038b0..54d9e5d9fcec 100644 --- a/arch/arm/mach-imx/mach-mx31moboard.c +++ b/arch/arm/mach-imx/mach-mx31moboard.c | |||
| @@ -303,7 +303,7 @@ static struct imx_ssi_platform_data moboard_ssi_pdata = { | |||
| 303 | static struct spi_board_info moboard_spi_board_info[] __initdata = { | 303 | static struct spi_board_info moboard_spi_board_info[] __initdata = { |
| 304 | { | 304 | { |
| 305 | .modalias = "mc13783", | 305 | .modalias = "mc13783", |
| 306 | .irq = IOMUX_TO_IRQ(MX31_PIN_GPIO1_3), | 306 | /* irq number is run-time assigned */ |
| 307 | .max_speed_hz = 300000, | 307 | .max_speed_hz = 300000, |
| 308 | .bus_num = 1, | 308 | .bus_num = 1, |
| 309 | .chip_select = 0, | 309 | .chip_select = 0, |
| @@ -473,10 +473,6 @@ static const struct gpio_led_platform_data mx31moboard_led_pdata __initconst = { | |||
| 473 | .leds = mx31moboard_leds, | 473 | .leds = mx31moboard_leds, |
| 474 | }; | 474 | }; |
| 475 | 475 | ||
| 476 | static const struct ipu_platform_data mx3_ipu_data __initconst = { | ||
| 477 | .irq_base = MXC_IPU_IRQ_START, | ||
| 478 | }; | ||
| 479 | |||
| 480 | static struct platform_device *devices[] __initdata = { | 476 | static struct platform_device *devices[] __initdata = { |
| 481 | &mx31moboard_flash, | 477 | &mx31moboard_flash, |
| 482 | }; | 478 | }; |
| @@ -494,7 +490,7 @@ static int __init mx31moboard_init_cam(void) | |||
| 494 | int dma, ret = -ENOMEM; | 490 | int dma, ret = -ENOMEM; |
| 495 | struct platform_device *pdev; | 491 | struct platform_device *pdev; |
| 496 | 492 | ||
| 497 | imx31_add_ipu_core(&mx3_ipu_data); | 493 | imx31_add_ipu_core(); |
| 498 | 494 | ||
| 499 | pdev = imx31_alloc_mx3_camera(&camera_pdata); | 495 | pdev = imx31_alloc_mx3_camera(&camera_pdata); |
| 500 | if (IS_ERR(pdev)) | 496 | if (IS_ERR(pdev)) |
| @@ -557,6 +553,8 @@ static void __init mx31moboard_init(void) | |||
| 557 | 553 | ||
| 558 | gpio_request(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3), "pmic-irq"); | 554 | gpio_request(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3), "pmic-irq"); |
| 559 | gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3)); | 555 | gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3)); |
| 556 | moboard_spi_board_info[0].irq = | ||
| 557 | gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_3)); | ||
| 560 | spi_register_board_info(moboard_spi_board_info, | 558 | spi_register_board_info(moboard_spi_board_info, |
| 561 | ARRAY_SIZE(moboard_spi_board_info)); | 559 | ARRAY_SIZE(moboard_spi_board_info)); |
| 562 | 560 | ||
diff --git a/arch/arm/mach-imx/mach-mx35_3ds.c b/arch/arm/mach-imx/mach-mx35_3ds.c index 28aa19476de7..e78525405c98 100644 --- a/arch/arm/mach-imx/mach-mx35_3ds.c +++ b/arch/arm/mach-imx/mach-mx35_3ds.c | |||
| @@ -46,7 +46,6 @@ | |||
| 46 | #include <mach/hardware.h> | 46 | #include <mach/hardware.h> |
| 47 | #include <mach/common.h> | 47 | #include <mach/common.h> |
| 48 | #include <mach/iomux-mx35.h> | 48 | #include <mach/iomux-mx35.h> |
| 49 | #include <mach/irqs.h> | ||
| 50 | #include <mach/3ds_debugboard.h> | 49 | #include <mach/3ds_debugboard.h> |
| 51 | #include <video/platform_lcd.h> | 50 | #include <video/platform_lcd.h> |
| 52 | 51 | ||
| @@ -80,10 +79,6 @@ static const struct fb_videomode fb_modedb[] = { | |||
| 80 | }, | 79 | }, |
| 81 | }; | 80 | }; |
| 82 | 81 | ||
| 83 | static const struct ipu_platform_data mx3_ipu_data __initconst = { | ||
| 84 | .irq_base = MXC_IPU_IRQ_START, | ||
| 85 | }; | ||
| 86 | |||
| 87 | static struct mx3fb_platform_data mx3fb_pdata __initdata = { | 82 | static struct mx3fb_platform_data mx3fb_pdata __initdata = { |
| 88 | .name = "Ceramate-CLAA070VC01", | 83 | .name = "Ceramate-CLAA070VC01", |
| 89 | .mode = fb_modedb, | 84 | .mode = fb_modedb, |
| @@ -136,8 +131,6 @@ static struct platform_device mx35_3ds_lcd = { | |||
| 136 | .dev.platform_data = &mx35_3ds_lcd_data, | 131 | .dev.platform_data = &mx35_3ds_lcd_data, |
| 137 | }; | 132 | }; |
| 138 | 133 | ||
| 139 | #define EXPIO_PARENT_INT gpio_to_irq(IMX_GPIO_NR(1, 1)) | ||
| 140 | |||
| 141 | static const struct imxuart_platform_data uart_pdata __initconst = { | 134 | static const struct imxuart_platform_data uart_pdata __initconst = { |
| 142 | .flags = IMXUART_HAVE_RTSCTS, | 135 | .flags = IMXUART_HAVE_RTSCTS, |
| 143 | }; | 136 | }; |
| @@ -297,10 +290,6 @@ err: | |||
| 297 | return ret; | 290 | return ret; |
| 298 | } | 291 | } |
| 299 | 292 | ||
| 300 | static const struct ipu_platform_data mx35_3ds_ipu_data __initconst = { | ||
| 301 | .irq_base = MXC_IPU_IRQ_START, | ||
| 302 | }; | ||
| 303 | |||
| 304 | static struct i2c_board_info mx35_3ds_i2c_camera = { | 293 | static struct i2c_board_info mx35_3ds_i2c_camera = { |
| 305 | I2C_BOARD_INFO("ov2640", 0x30), | 294 | I2C_BOARD_INFO("ov2640", 0x30), |
| 306 | }; | 295 | }; |
| @@ -492,7 +481,7 @@ static struct i2c_board_info mx35_3ds_i2c_mc13892 = { | |||
| 492 | 481 | ||
| 493 | I2C_BOARD_INFO("mc13892", 0x08), | 482 | I2C_BOARD_INFO("mc13892", 0x08), |
| 494 | .platform_data = &mx35_3ds_mc13892_data, | 483 | .platform_data = &mx35_3ds_mc13892_data, |
| 495 | .irq = IMX_GPIO_TO_IRQ(GPIO_PMIC_INT), | 484 | /* irq number is run-time assigned */ |
| 496 | }; | 485 | }; |
| 497 | 486 | ||
| 498 | static void __init imx35_3ds_init_mc13892(void) | 487 | static void __init imx35_3ds_init_mc13892(void) |
| @@ -504,6 +493,7 @@ static void __init imx35_3ds_init_mc13892(void) | |||
| 504 | return; | 493 | return; |
| 505 | } | 494 | } |
| 506 | 495 | ||
| 496 | mx35_3ds_i2c_mc13892.irq = gpio_to_irq(GPIO_PMIC_INT); | ||
| 507 | i2c_register_board_info(0, &mx35_3ds_i2c_mc13892, 1); | 497 | i2c_register_board_info(0, &mx35_3ds_i2c_mc13892, 1); |
| 508 | } | 498 | } |
| 509 | 499 | ||
| @@ -587,7 +577,7 @@ static void __init mx35_3ds_init(void) | |||
| 587 | imx35_add_mxc_nand(&mx35pdk_nand_board_info); | 577 | imx35_add_mxc_nand(&mx35pdk_nand_board_info); |
| 588 | imx35_add_sdhci_esdhc_imx(0, NULL); | 578 | imx35_add_sdhci_esdhc_imx(0, NULL); |
| 589 | 579 | ||
| 590 | if (mxc_expio_init(MX35_CS5_BASE_ADDR, EXPIO_PARENT_INT)) | 580 | if (mxc_expio_init(MX35_CS5_BASE_ADDR, IMX_GPIO_NR(1, 1))) |
| 591 | pr_warn("Init of the debugboard failed, all " | 581 | pr_warn("Init of the debugboard failed, all " |
| 592 | "devices on the debugboard are unusable.\n"); | 582 | "devices on the debugboard are unusable.\n"); |
| 593 | imx35_add_imx_i2c0(&mx35_3ds_i2c0_data); | 583 | imx35_add_imx_i2c0(&mx35_3ds_i2c0_data); |
| @@ -595,7 +585,7 @@ static void __init mx35_3ds_init(void) | |||
| 595 | i2c_register_board_info( | 585 | i2c_register_board_info( |
| 596 | 0, i2c_devices_3ds, ARRAY_SIZE(i2c_devices_3ds)); | 586 | 0, i2c_devices_3ds, ARRAY_SIZE(i2c_devices_3ds)); |
| 597 | 587 | ||
| 598 | imx35_add_ipu_core(&mx35_3ds_ipu_data); | 588 | imx35_add_ipu_core(); |
| 599 | platform_device_register(&mx35_3ds_ov2640); | 589 | platform_device_register(&mx35_3ds_ov2640); |
| 600 | imx35_3ds_init_camera(); | 590 | imx35_3ds_init_camera(); |
| 601 | 591 | ||
diff --git a/arch/arm/mach-imx/mach-mx51_3ds.c b/arch/arm/mach-imx/mach-mx51_3ds.c index 3c5b163923f6..ebb91882ae63 100644 --- a/arch/arm/mach-imx/mach-mx51_3ds.c +++ b/arch/arm/mach-imx/mach-mx51_3ds.c | |||
| @@ -26,7 +26,6 @@ | |||
| 26 | 26 | ||
| 27 | #include "devices-imx51.h" | 27 | #include "devices-imx51.h" |
| 28 | 28 | ||
| 29 | #define EXPIO_PARENT_INT gpio_to_irq(IMX_GPIO_NR(1, 6)) | ||
| 30 | #define MX51_3DS_ECSPI2_CS (GPIO_PORTC + 28) | 29 | #define MX51_3DS_ECSPI2_CS (GPIO_PORTC + 28) |
| 31 | 30 | ||
| 32 | static iomux_v3_cfg_t mx51_3ds_pads[] = { | 31 | static iomux_v3_cfg_t mx51_3ds_pads[] = { |
| @@ -148,7 +147,7 @@ static void __init mx51_3ds_init(void) | |||
| 148 | spi_register_board_info(mx51_3ds_spi_nor_device, | 147 | spi_register_board_info(mx51_3ds_spi_nor_device, |
| 149 | ARRAY_SIZE(mx51_3ds_spi_nor_device)); | 148 | ARRAY_SIZE(mx51_3ds_spi_nor_device)); |
| 150 | 149 | ||
| 151 | if (mxc_expio_init(MX51_CS5_BASE_ADDR, EXPIO_PARENT_INT)) | 150 | if (mxc_expio_init(MX51_CS5_BASE_ADDR, IMX_GPIO_NR(1, 6))) |
| 152 | printk(KERN_WARNING "Init of the debugboard failed, all " | 151 | printk(KERN_WARNING "Init of the debugboard failed, all " |
| 153 | "devices on the board are unusable.\n"); | 152 | "devices on the board are unusable.\n"); |
| 154 | 153 | ||
diff --git a/arch/arm/mach-imx/mach-mx53_ard.c b/arch/arm/mach-imx/mach-mx53_ard.c index 05641980dc5e..fe3f3969cf1d 100644 --- a/arch/arm/mach-imx/mach-mx53_ard.c +++ b/arch/arm/mach-imx/mach-mx53_ard.c | |||
| @@ -135,8 +135,7 @@ static struct resource ard_smsc911x_resources[] = { | |||
| 135 | .flags = IORESOURCE_MEM, | 135 | .flags = IORESOURCE_MEM, |
| 136 | }, | 136 | }, |
| 137 | { | 137 | { |
| 138 | .start = IMX_GPIO_TO_IRQ(ARD_ETHERNET_INT_B), | 138 | /* irq number is run-time assigned */ |
| 139 | .end = IMX_GPIO_TO_IRQ(ARD_ETHERNET_INT_B), | ||
| 140 | .flags = IORESOURCE_IRQ, | 139 | .flags = IORESOURCE_IRQ, |
| 141 | }, | 140 | }, |
| 142 | }; | 141 | }; |
| @@ -240,6 +239,8 @@ static void __init mx53_ard_board_init(void) | |||
| 240 | imx53_ard_common_init(); | 239 | imx53_ard_common_init(); |
| 241 | mx53_ard_io_init(); | 240 | mx53_ard_io_init(); |
| 242 | regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies)); | 241 | regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies)); |
| 242 | ard_smsc911x_resources[1].start = gpio_to_irq(ARD_ETHERNET_INT_B); | ||
| 243 | ard_smsc911x_resources[1].end = gpio_to_irq(ARD_ETHERNET_INT_B); | ||
| 243 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 244 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
| 244 | 245 | ||
| 245 | imx53_add_sdhci_esdhc_imx(0, &mx53_ard_sd1_data); | 246 | imx53_add_sdhci_esdhc_imx(0, &mx53_ard_sd1_data); |
diff --git a/arch/arm/mach-imx/mach-mxt_td60.c b/arch/arm/mach-imx/mach-mxt_td60.c index 8b3d3f07d894..0bf6d30aa32d 100644 --- a/arch/arm/mach-imx/mach-mxt_td60.c +++ b/arch/arm/mach-imx/mach-mxt_td60.c | |||
| @@ -213,13 +213,13 @@ static const struct imx_fb_platform_data mxt_td60_fb_data __initconst = { | |||
| 213 | static int mxt_td60_sdhc1_init(struct device *dev, irq_handler_t detect_irq, | 213 | static int mxt_td60_sdhc1_init(struct device *dev, irq_handler_t detect_irq, |
| 214 | void *data) | 214 | void *data) |
| 215 | { | 215 | { |
| 216 | return request_irq(IRQ_GPIOF(8), detect_irq, IRQF_TRIGGER_FALLING, | 216 | return request_irq(gpio_to_irq(IMX_GPIO_NR(6, 8)), detect_irq, |
| 217 | "sdhc1-card-detect", data); | 217 | IRQF_TRIGGER_FALLING, "sdhc1-card-detect", data); |
| 218 | } | 218 | } |
| 219 | 219 | ||
| 220 | static void mxt_td60_sdhc1_exit(struct device *dev, void *data) | 220 | static void mxt_td60_sdhc1_exit(struct device *dev, void *data) |
| 221 | { | 221 | { |
| 222 | free_irq(IRQ_GPIOF(8), data); | 222 | free_irq(gpio_to_irq(IMX_GPIO_NR(6, 8)), data); |
| 223 | } | 223 | } |
| 224 | 224 | ||
| 225 | static const struct imxmmc_platform_data sdhc1_pdata __initconst = { | 225 | static const struct imxmmc_platform_data sdhc1_pdata __initconst = { |
diff --git a/arch/arm/mach-imx/mach-pca100.c b/arch/arm/mach-imx/mach-pca100.c index 541152e450c4..d620a958e4f9 100644 --- a/arch/arm/mach-imx/mach-pca100.c +++ b/arch/arm/mach-imx/mach-pca100.c | |||
| @@ -36,7 +36,6 @@ | |||
| 36 | #include <mach/hardware.h> | 36 | #include <mach/hardware.h> |
| 37 | #include <mach/iomux-mx27.h> | 37 | #include <mach/iomux-mx27.h> |
| 38 | #include <asm/mach/time.h> | 38 | #include <asm/mach/time.h> |
| 39 | #include <mach/irqs.h> | ||
| 40 | #include <mach/ulpi.h> | 39 | #include <mach/ulpi.h> |
| 41 | 40 | ||
| 42 | #include "devices-imx27.h" | 41 | #include "devices-imx27.h" |
| @@ -245,7 +244,7 @@ static int pca100_sdhc2_init(struct device *dev, irq_handler_t detect_irq, | |||
| 245 | { | 244 | { |
| 246 | int ret; | 245 | int ret; |
| 247 | 246 | ||
| 248 | ret = request_irq(IRQ_GPIOC(29), detect_irq, | 247 | ret = request_irq(gpio_to_irq(IMX_GPIO_NR(3, 29)), detect_irq, |
| 249 | IRQF_DISABLED | IRQF_TRIGGER_FALLING, | 248 | IRQF_DISABLED | IRQF_TRIGGER_FALLING, |
| 250 | "imx-mmc-detect", data); | 249 | "imx-mmc-detect", data); |
| 251 | if (ret) | 250 | if (ret) |
| @@ -257,7 +256,7 @@ static int pca100_sdhc2_init(struct device *dev, irq_handler_t detect_irq, | |||
| 257 | 256 | ||
| 258 | static void pca100_sdhc2_exit(struct device *dev, void *data) | 257 | static void pca100_sdhc2_exit(struct device *dev, void *data) |
| 259 | { | 258 | { |
| 260 | free_irq(IRQ_GPIOC(29), data); | 259 | free_irq(gpio_to_irq(IMX_GPIO_NR(3, 29)), data); |
| 261 | } | 260 | } |
| 262 | 261 | ||
| 263 | static const struct imxmmc_platform_data sdhc_pdata __initconst = { | 262 | static const struct imxmmc_platform_data sdhc_pdata __initconst = { |
diff --git a/arch/arm/mach-imx/mach-pcm037.c b/arch/arm/mach-imx/mach-pcm037.c index 0a40004154f2..ded4ed9def9e 100644 --- a/arch/arm/mach-imx/mach-pcm037.c +++ b/arch/arm/mach-imx/mach-pcm037.c | |||
| @@ -225,8 +225,7 @@ static struct resource smsc911x_resources[] = { | |||
| 225 | .end = MX31_CS1_BASE_ADDR + 0x300 + SZ_64K - 1, | 225 | .end = MX31_CS1_BASE_ADDR + 0x300 + SZ_64K - 1, |
| 226 | .flags = IORESOURCE_MEM, | 226 | .flags = IORESOURCE_MEM, |
| 227 | }, { | 227 | }, { |
| 228 | .start = IOMUX_TO_IRQ(MX31_PIN_GPIO3_1), | 228 | /* irq number is run-time assigned */ |
| 229 | .end = IOMUX_TO_IRQ(MX31_PIN_GPIO3_1), | ||
| 230 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, | 229 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, |
| 231 | }, | 230 | }, |
| 232 | }; | 231 | }; |
| @@ -371,7 +370,7 @@ static int pcm970_sdhc1_init(struct device *dev, irq_handler_t detect_irq, | |||
| 371 | gpio_direction_input(SDHC1_GPIO_WP); | 370 | gpio_direction_input(SDHC1_GPIO_WP); |
| 372 | #endif | 371 | #endif |
| 373 | 372 | ||
| 374 | ret = request_irq(IOMUX_TO_IRQ(MX31_PIN_SCK6), detect_irq, | 373 | ret = request_irq(gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_SCK6)), detect_irq, |
| 375 | IRQF_DISABLED | IRQF_TRIGGER_FALLING, | 374 | IRQF_DISABLED | IRQF_TRIGGER_FALLING, |
| 376 | "sdhc-detect", data); | 375 | "sdhc-detect", data); |
| 377 | if (ret) | 376 | if (ret) |
| @@ -391,7 +390,7 @@ err_gpio_free: | |||
| 391 | 390 | ||
| 392 | static void pcm970_sdhc1_exit(struct device *dev, void *data) | 391 | static void pcm970_sdhc1_exit(struct device *dev, void *data) |
| 393 | { | 392 | { |
| 394 | free_irq(IOMUX_TO_IRQ(MX31_PIN_SCK6), data); | 393 | free_irq(gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_SCK6)), data); |
| 395 | gpio_free(SDHC1_GPIO_DET); | 394 | gpio_free(SDHC1_GPIO_DET); |
| 396 | gpio_free(SDHC1_GPIO_WP); | 395 | gpio_free(SDHC1_GPIO_WP); |
| 397 | } | 396 | } |
| @@ -442,10 +441,6 @@ static struct platform_device *devices[] __initdata = { | |||
| 442 | &pcm037_mt9v022, | 441 | &pcm037_mt9v022, |
| 443 | }; | 442 | }; |
| 444 | 443 | ||
| 445 | static const struct ipu_platform_data mx3_ipu_data __initconst = { | ||
| 446 | .irq_base = MXC_IPU_IRQ_START, | ||
| 447 | }; | ||
| 448 | |||
| 449 | static const struct fb_videomode fb_modedb[] = { | 444 | static const struct fb_videomode fb_modedb[] = { |
| 450 | { | 445 | { |
| 451 | /* 240x320 @ 60 Hz Sharp */ | 446 | /* 240x320 @ 60 Hz Sharp */ |
| @@ -511,8 +506,7 @@ static struct resource pcm970_sja1000_resources[] = { | |||
| 511 | .end = MX31_CS5_BASE_ADDR + 0x100 - 1, | 506 | .end = MX31_CS5_BASE_ADDR + 0x100 - 1, |
| 512 | .flags = IORESOURCE_MEM, | 507 | .flags = IORESOURCE_MEM, |
| 513 | }, { | 508 | }, { |
| 514 | .start = IOMUX_TO_IRQ(IOMUX_PIN(48, 105)), | 509 | /* irq number is run-time assigned */ |
| 515 | .end = IOMUX_TO_IRQ(IOMUX_PIN(48, 105)), | ||
| 516 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE, | 510 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE, |
| 517 | }, | 511 | }, |
| 518 | }; | 512 | }; |
| @@ -633,6 +627,10 @@ static void __init pcm037_init(void) | |||
| 633 | pr_warning("could not get LAN irq gpio\n"); | 627 | pr_warning("could not get LAN irq gpio\n"); |
| 634 | else { | 628 | else { |
| 635 | gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_GPIO3_1)); | 629 | gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_GPIO3_1)); |
| 630 | smsc911x_resources[1].start = | ||
| 631 | gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO3_1)); | ||
| 632 | smsc911x_resources[1].end = | ||
| 633 | gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO3_1)); | ||
| 636 | platform_device_register(&pcm037_eth); | 634 | platform_device_register(&pcm037_eth); |
| 637 | } | 635 | } |
| 638 | 636 | ||
| @@ -646,7 +644,7 @@ static void __init pcm037_init(void) | |||
| 646 | 644 | ||
| 647 | imx31_add_mxc_nand(&pcm037_nand_board_info); | 645 | imx31_add_mxc_nand(&pcm037_nand_board_info); |
| 648 | imx31_add_mxc_mmc(0, &sdhc_pdata); | 646 | imx31_add_mxc_mmc(0, &sdhc_pdata); |
| 649 | imx31_add_ipu_core(&mx3_ipu_data); | 647 | imx31_add_ipu_core(); |
| 650 | imx31_add_mx3_sdc_fb(&mx3fb_pdata); | 648 | imx31_add_mx3_sdc_fb(&mx3fb_pdata); |
| 651 | 649 | ||
| 652 | /* CSI */ | 650 | /* CSI */ |
| @@ -659,6 +657,10 @@ static void __init pcm037_init(void) | |||
| 659 | 657 | ||
| 660 | pcm037_init_camera(); | 658 | pcm037_init_camera(); |
| 661 | 659 | ||
| 660 | pcm970_sja1000_resources[1].start = | ||
| 661 | gpio_to_irq(IOMUX_TO_GPIO(IOMUX_PIN(48, 105))); | ||
| 662 | pcm970_sja1000_resources[1].end = | ||
| 663 | gpio_to_irq(IOMUX_TO_GPIO(IOMUX_PIN(48, 105))); | ||
| 662 | platform_device_register(&pcm970_sja1000); | 664 | platform_device_register(&pcm970_sja1000); |
| 663 | 665 | ||
| 664 | if (otg_mode_host) { | 666 | if (otg_mode_host) { |
diff --git a/arch/arm/mach-imx/mach-pcm038.c b/arch/arm/mach-imx/mach-pcm038.c index 2f3debe2a113..cfb39037b203 100644 --- a/arch/arm/mach-imx/mach-pcm038.c +++ b/arch/arm/mach-imx/mach-pcm038.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #include <linux/mfd/mc13783.h> | 27 | #include <linux/mfd/mc13783.h> |
| 28 | #include <linux/spi/spi.h> | 28 | #include <linux/spi/spi.h> |
| 29 | #include <linux/irq.h> | 29 | #include <linux/irq.h> |
| 30 | #include <linux/gpio.h> | ||
| 30 | 31 | ||
| 31 | #include <asm/mach-types.h> | 32 | #include <asm/mach-types.h> |
| 32 | #include <asm/mach/arch.h> | 33 | #include <asm/mach/arch.h> |
| @@ -274,7 +275,7 @@ static struct mc13xxx_platform_data pcm038_pmic = { | |||
| 274 | static struct spi_board_info pcm038_spi_board_info[] __initdata = { | 275 | static struct spi_board_info pcm038_spi_board_info[] __initdata = { |
| 275 | { | 276 | { |
| 276 | .modalias = "mc13783", | 277 | .modalias = "mc13783", |
| 277 | .irq = IRQ_GPIOB(23), | 278 | /* irq number is run-time assigned */ |
| 278 | .max_speed_hz = 300000, | 279 | .max_speed_hz = 300000, |
| 279 | .bus_num = 0, | 280 | .bus_num = 0, |
| 280 | .chip_select = 0, | 281 | .chip_select = 0, |
| @@ -325,6 +326,7 @@ static void __init pcm038_init(void) | |||
| 325 | mxc_gpio_mode(GPIO_PORTB | 23 | GPIO_GPIO | GPIO_IN); | 326 | mxc_gpio_mode(GPIO_PORTB | 23 | GPIO_GPIO | GPIO_IN); |
| 326 | 327 | ||
| 327 | imx27_add_spi_imx0(&pcm038_spi0_data); | 328 | imx27_add_spi_imx0(&pcm038_spi0_data); |
| 329 | pcm038_spi_board_info[0].irq = gpio_to_irq(IMX_GPIO_NR(2, 23)); | ||
| 328 | spi_register_board_info(pcm038_spi_board_info, | 330 | spi_register_board_info(pcm038_spi_board_info, |
| 329 | ARRAY_SIZE(pcm038_spi_board_info)); | 331 | ARRAY_SIZE(pcm038_spi_board_info)); |
| 330 | 332 | ||
diff --git a/arch/arm/mach-imx/mach-pcm043.c b/arch/arm/mach-imx/mach-pcm043.c index 73585f55cca0..133908f94f7e 100644 --- a/arch/arm/mach-imx/mach-pcm043.c +++ b/arch/arm/mach-imx/mach-pcm043.c | |||
| @@ -76,10 +76,6 @@ static const struct fb_videomode fb_modedb[] = { | |||
| 76 | }, | 76 | }, |
| 77 | }; | 77 | }; |
| 78 | 78 | ||
| 79 | static const struct ipu_platform_data mx3_ipu_data __initconst = { | ||
| 80 | .irq_base = MXC_IPU_IRQ_START, | ||
| 81 | }; | ||
| 82 | |||
| 83 | static struct mx3fb_platform_data mx3fb_pdata __initdata = { | 79 | static struct mx3fb_platform_data mx3fb_pdata __initdata = { |
| 84 | .name = "Sharp-LQ035Q7", | 80 | .name = "Sharp-LQ035Q7", |
| 85 | .mode = fb_modedb, | 81 | .mode = fb_modedb, |
| @@ -376,7 +372,7 @@ static void __init pcm043_init(void) | |||
| 376 | 372 | ||
| 377 | imx35_add_imx_i2c0(&pcm043_i2c0_data); | 373 | imx35_add_imx_i2c0(&pcm043_i2c0_data); |
| 378 | 374 | ||
| 379 | imx35_add_ipu_core(&mx3_ipu_data); | 375 | imx35_add_ipu_core(); |
| 380 | imx35_add_mx3_sdc_fb(&mx3fb_pdata); | 376 | imx35_add_mx3_sdc_fb(&mx3fb_pdata); |
| 381 | 377 | ||
| 382 | if (otg_mode_host) { | 378 | if (otg_mode_host) { |
diff --git a/arch/arm/mach-imx/mach-qong.c b/arch/arm/mach-imx/mach-qong.c index 260621055b6b..39ceb8c10d5c 100644 --- a/arch/arm/mach-imx/mach-qong.c +++ b/arch/arm/mach-imx/mach-qong.c | |||
| @@ -22,7 +22,6 @@ | |||
| 22 | #include <linux/gpio.h> | 22 | #include <linux/gpio.h> |
| 23 | 23 | ||
| 24 | #include <mach/hardware.h> | 24 | #include <mach/hardware.h> |
| 25 | #include <mach/irqs.h> | ||
| 26 | #include <asm/mach-types.h> | 25 | #include <asm/mach-types.h> |
| 27 | #include <asm/mach/arch.h> | 26 | #include <asm/mach/arch.h> |
| 28 | #include <asm/mach/time.h> | 27 | #include <asm/mach/time.h> |
| @@ -51,8 +50,6 @@ | |||
| 51 | (QONG_FPGA_BASEADDR + QONG_DNET_ID * QONG_FPGA_PERIPH_SIZE) | 50 | (QONG_FPGA_BASEADDR + QONG_DNET_ID * QONG_FPGA_PERIPH_SIZE) |
| 52 | #define QONG_DNET_SIZE 0x00001000 | 51 | #define QONG_DNET_SIZE 0x00001000 |
| 53 | 52 | ||
| 54 | #define QONG_FPGA_IRQ IOMUX_TO_IRQ(MX31_PIN_DTR_DCE1) | ||
| 55 | |||
| 56 | static const struct imxuart_platform_data uart_pdata __initconst = { | 53 | static const struct imxuart_platform_data uart_pdata __initconst = { |
| 57 | .flags = IMXUART_HAVE_RTSCTS, | 54 | .flags = IMXUART_HAVE_RTSCTS, |
| 58 | }; | 55 | }; |
| @@ -78,8 +75,7 @@ static struct resource dnet_resources[] = { | |||
| 78 | .end = QONG_DNET_BASEADDR + QONG_DNET_SIZE - 1, | 75 | .end = QONG_DNET_BASEADDR + QONG_DNET_SIZE - 1, |
| 79 | .flags = IORESOURCE_MEM, | 76 | .flags = IORESOURCE_MEM, |
| 80 | }, { | 77 | }, { |
| 81 | .start = QONG_FPGA_IRQ, | 78 | /* irq number is run-time assigned */ |
| 82 | .end = QONG_FPGA_IRQ, | ||
| 83 | .flags = IORESOURCE_IRQ, | 79 | .flags = IORESOURCE_IRQ, |
| 84 | }, | 80 | }, |
| 85 | }; | 81 | }; |
| @@ -95,6 +91,10 @@ static int __init qong_init_dnet(void) | |||
| 95 | { | 91 | { |
| 96 | int ret; | 92 | int ret; |
| 97 | 93 | ||
| 94 | dnet_resources[1].start = | ||
| 95 | gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_DTR_DCE1)); | ||
| 96 | dnet_resources[1].end = | ||
| 97 | gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_DTR_DCE1)); | ||
| 98 | ret = platform_device_register(&dnet_device); | 98 | ret = platform_device_register(&dnet_device); |
| 99 | return ret; | 99 | return ret; |
| 100 | } | 100 | } |
diff --git a/arch/arm/mach-imx/mach-scb9328.c b/arch/arm/mach-imx/mach-scb9328.c index cb9ceae2f648..67ff38e9a3ca 100644 --- a/arch/arm/mach-imx/mach-scb9328.c +++ b/arch/arm/mach-imx/mach-scb9328.c | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | #include <linux/mtd/physmap.h> | 14 | #include <linux/mtd/physmap.h> |
| 15 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
| 16 | #include <linux/dm9000.h> | 16 | #include <linux/dm9000.h> |
| 17 | #include <linux/gpio.h> | ||
| 17 | 18 | ||
| 18 | #include <asm/mach-types.h> | 19 | #include <asm/mach-types.h> |
| 19 | #include <asm/mach/arch.h> | 20 | #include <asm/mach/arch.h> |
| @@ -21,7 +22,6 @@ | |||
| 21 | 22 | ||
| 22 | #include <mach/common.h> | 23 | #include <mach/common.h> |
| 23 | #include <mach/hardware.h> | 24 | #include <mach/hardware.h> |
| 24 | #include <mach/irqs.h> | ||
| 25 | #include <mach/iomux-mx1.h> | 25 | #include <mach/iomux-mx1.h> |
| 26 | 26 | ||
| 27 | #include "devices-imx1.h" | 27 | #include "devices-imx1.h" |
| @@ -78,8 +78,7 @@ static struct resource dm9000x_resources[] = { | |||
| 78 | .end = MX1_CS5_PHYS + 5, | 78 | .end = MX1_CS5_PHYS + 5, |
| 79 | .flags = IORESOURCE_MEM, /* data access */ | 79 | .flags = IORESOURCE_MEM, /* data access */ |
| 80 | }, { | 80 | }, { |
| 81 | .start = IRQ_GPIOC(3), | 81 | /* irq number is run-time assigned */ |
| 82 | .end = IRQ_GPIOC(3), | ||
| 83 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, | 82 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, |
| 84 | }, | 83 | }, |
| 85 | }; | 84 | }; |
| @@ -123,6 +122,8 @@ static void __init scb9328_init(void) | |||
| 123 | imx1_add_imx_uart0(&uart_pdata); | 122 | imx1_add_imx_uart0(&uart_pdata); |
| 124 | 123 | ||
| 125 | printk(KERN_INFO"Scb9328: Adding devices\n"); | 124 | printk(KERN_INFO"Scb9328: Adding devices\n"); |
| 125 | dm9000x_resources[2].start = gpio_to_irq(IMX_GPIO_NR(3, 3)); | ||
| 126 | dm9000x_resources[2].end = gpio_to_irq(IMX_GPIO_NR(3, 3)); | ||
| 126 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 127 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
| 127 | } | 128 | } |
| 128 | 129 | ||
diff --git a/arch/arm/mach-imx/mach-vpr200.c b/arch/arm/mach-imx/mach-vpr200.c index add8c69c6c1a..09864bba3820 100644 --- a/arch/arm/mach-imx/mach-vpr200.c +++ b/arch/arm/mach-imx/mach-vpr200.c | |||
| @@ -31,7 +31,6 @@ | |||
| 31 | #include <mach/hardware.h> | 31 | #include <mach/hardware.h> |
| 32 | #include <mach/common.h> | 32 | #include <mach/common.h> |
| 33 | #include <mach/iomux-mx35.h> | 33 | #include <mach/iomux-mx35.h> |
| 34 | #include <mach/irqs.h> | ||
| 35 | 34 | ||
| 36 | #include <linux/i2c.h> | 35 | #include <linux/i2c.h> |
| 37 | #include <linux/i2c/at24.h> | 36 | #include <linux/i2c/at24.h> |
| @@ -87,10 +86,6 @@ static const struct fb_videomode fb_modedb[] = { | |||
| 87 | } | 86 | } |
| 88 | }; | 87 | }; |
| 89 | 88 | ||
| 90 | static const struct ipu_platform_data mx3_ipu_data __initconst = { | ||
| 91 | .irq_base = MXC_IPU_IRQ_START, | ||
| 92 | }; | ||
| 93 | |||
| 94 | static struct mx3fb_platform_data mx3fb_pdata __initdata = { | 89 | static struct mx3fb_platform_data mx3fb_pdata __initdata = { |
| 95 | .name = "PT0708048", | 90 | .name = "PT0708048", |
| 96 | .mode = fb_modedb, | 91 | .mode = fb_modedb, |
| @@ -162,7 +157,7 @@ static struct i2c_board_info vpr200_i2c_devices[] = { | |||
| 162 | }, { | 157 | }, { |
| 163 | I2C_BOARD_INFO("mc13892", 0x08), | 158 | I2C_BOARD_INFO("mc13892", 0x08), |
| 164 | .platform_data = &vpr200_pmic, | 159 | .platform_data = &vpr200_pmic, |
| 165 | .irq = IMX_GPIO_TO_IRQ(GPIO_PMIC_INT), | 160 | /* irq number is run-time assigned */ |
| 166 | } | 161 | } |
| 167 | }; | 162 | }; |
| 168 | 163 | ||
| @@ -290,7 +285,7 @@ static void __init vpr200_board_init(void) | |||
| 290 | imx35_add_imx_uart0(NULL); | 285 | imx35_add_imx_uart0(NULL); |
| 291 | imx35_add_imx_uart2(NULL); | 286 | imx35_add_imx_uart2(NULL); |
| 292 | 287 | ||
| 293 | imx35_add_ipu_core(&mx3_ipu_data); | 288 | imx35_add_ipu_core(); |
| 294 | imx35_add_mx3_sdc_fb(&mx3fb_pdata); | 289 | imx35_add_mx3_sdc_fb(&mx3fb_pdata); |
| 295 | 290 | ||
| 296 | imx35_add_fsl_usb2_udc(&otg_device_pdata); | 291 | imx35_add_fsl_usb2_udc(&otg_device_pdata); |
| @@ -299,6 +294,7 @@ static void __init vpr200_board_init(void) | |||
| 299 | imx35_add_mxc_nand(&vpr200_nand_board_info); | 294 | imx35_add_mxc_nand(&vpr200_nand_board_info); |
| 300 | imx35_add_sdhci_esdhc_imx(0, NULL); | 295 | imx35_add_sdhci_esdhc_imx(0, NULL); |
| 301 | 296 | ||
| 297 | vpr200_i2c_devices[1].irq = gpio_to_irq(GPIO_PMIC_INT); | ||
| 302 | i2c_register_board_info(0, vpr200_i2c_devices, | 298 | i2c_register_board_info(0, vpr200_i2c_devices, |
| 303 | ARRAY_SIZE(vpr200_i2c_devices)); | 299 | ARRAY_SIZE(vpr200_i2c_devices)); |
| 304 | 300 | ||
diff --git a/arch/arm/mach-imx/mm-imx1.c b/arch/arm/mach-imx/mm-imx1.c index fcafd3dafb8c..6d60d51868bc 100644 --- a/arch/arm/mach-imx/mm-imx1.c +++ b/arch/arm/mach-imx/mm-imx1.c | |||
| @@ -24,7 +24,6 @@ | |||
| 24 | 24 | ||
| 25 | #include <mach/common.h> | 25 | #include <mach/common.h> |
| 26 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
| 27 | #include <mach/irqs.h> | ||
| 28 | #include <mach/iomux-v1.h> | 27 | #include <mach/iomux-v1.h> |
| 29 | 28 | ||
| 30 | static struct map_desc imx_io_desc[] __initdata = { | 29 | static struct map_desc imx_io_desc[] __initdata = { |
diff --git a/arch/arm/mach-imx/mm-imx21.c b/arch/arm/mach-imx/mm-imx21.c index 5f43905e5290..d056dad0940d 100644 --- a/arch/arm/mach-imx/mm-imx21.c +++ b/arch/arm/mach-imx/mm-imx21.c | |||
| @@ -26,7 +26,6 @@ | |||
| 26 | #include <mach/devices-common.h> | 26 | #include <mach/devices-common.h> |
| 27 | #include <asm/pgtable.h> | 27 | #include <asm/pgtable.h> |
| 28 | #include <asm/mach/map.h> | 28 | #include <asm/mach/map.h> |
| 29 | #include <mach/irqs.h> | ||
| 30 | #include <mach/iomux-v1.h> | 29 | #include <mach/iomux-v1.h> |
| 31 | 30 | ||
| 32 | /* MX21 memory map definition */ | 31 | /* MX21 memory map definition */ |
diff --git a/arch/arm/mach-imx/mm-imx25.c b/arch/arm/mach-imx/mm-imx25.c index 6ff37140a4f8..388928fdb11a 100644 --- a/arch/arm/mach-imx/mm-imx25.c +++ b/arch/arm/mach-imx/mm-imx25.c | |||
| @@ -29,7 +29,6 @@ | |||
| 29 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
| 30 | #include <mach/mx25.h> | 30 | #include <mach/mx25.h> |
| 31 | #include <mach/iomux-v3.h> | 31 | #include <mach/iomux-v3.h> |
| 32 | #include <mach/irqs.h> | ||
| 33 | 32 | ||
| 34 | /* | 33 | /* |
| 35 | * This table defines static virtual address mappings for I/O regions. | 34 | * This table defines static virtual address mappings for I/O regions. |
diff --git a/arch/arm/mach-imx/mm-imx27.c b/arch/arm/mach-imx/mm-imx27.c index 25662558e018..e7e24afc45ed 100644 --- a/arch/arm/mach-imx/mm-imx27.c +++ b/arch/arm/mach-imx/mm-imx27.c | |||
| @@ -26,7 +26,6 @@ | |||
| 26 | #include <mach/devices-common.h> | 26 | #include <mach/devices-common.h> |
| 27 | #include <asm/pgtable.h> | 27 | #include <asm/pgtable.h> |
| 28 | #include <asm/mach/map.h> | 28 | #include <asm/mach/map.h> |
| 29 | #include <mach/irqs.h> | ||
| 30 | #include <mach/iomux-v1.h> | 29 | #include <mach/iomux-v1.h> |
| 31 | 30 | ||
| 32 | /* MX27 memory map definition */ | 31 | /* MX27 memory map definition */ |
diff --git a/arch/arm/mach-imx/mm-imx3.c b/arch/arm/mach-imx/mm-imx3.c index a8983b9778d1..fe96105109b3 100644 --- a/arch/arm/mach-imx/mm-imx3.c +++ b/arch/arm/mach-imx/mm-imx3.c | |||
| @@ -30,7 +30,6 @@ | |||
| 30 | #include <mach/devices-common.h> | 30 | #include <mach/devices-common.h> |
| 31 | #include <mach/hardware.h> | 31 | #include <mach/hardware.h> |
| 32 | #include <mach/iomux-v3.h> | 32 | #include <mach/iomux-v3.h> |
| 33 | #include <mach/irqs.h> | ||
| 34 | 33 | ||
| 35 | #include "crmregs-imx3.h" | 34 | #include "crmregs-imx3.h" |
| 36 | 35 | ||
diff --git a/arch/arm/mach-imx/mx31lilly-db.c b/arch/arm/mach-imx/mx31lilly-db.c index 7d26f766a4ee..29e890f92055 100644 --- a/arch/arm/mach-imx/mx31lilly-db.c +++ b/arch/arm/mach-imx/mx31lilly-db.c | |||
| @@ -130,7 +130,8 @@ static int mxc_mmc1_init(struct device *dev, | |||
| 130 | gpio_direction_input(gpio_det); | 130 | gpio_direction_input(gpio_det); |
| 131 | gpio_direction_input(gpio_wp); | 131 | gpio_direction_input(gpio_wp); |
| 132 | 132 | ||
| 133 | ret = request_irq(IOMUX_TO_IRQ(MX31_PIN_GPIO1_1), detect_irq, | 133 | ret = request_irq(gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_1)), |
| 134 | detect_irq, | ||
| 134 | IRQF_DISABLED | IRQF_TRIGGER_FALLING, | 135 | IRQF_DISABLED | IRQF_TRIGGER_FALLING, |
| 135 | "MMC detect", data); | 136 | "MMC detect", data); |
| 136 | if (ret) | 137 | if (ret) |
| @@ -151,7 +152,7 @@ static void mxc_mmc1_exit(struct device *dev, void *data) | |||
| 151 | { | 152 | { |
| 152 | gpio_free(gpio_det); | 153 | gpio_free(gpio_det); |
| 153 | gpio_free(gpio_wp); | 154 | gpio_free(gpio_wp); |
| 154 | free_irq(IOMUX_TO_IRQ(MX31_PIN_GPIO1_1), data); | 155 | free_irq(gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_GPIO1_1)), data); |
| 155 | } | 156 | } |
| 156 | 157 | ||
| 157 | static const struct imxmmc_platform_data mmc_pdata __initconst = { | 158 | static const struct imxmmc_platform_data mmc_pdata __initconst = { |
| @@ -161,10 +162,6 @@ static const struct imxmmc_platform_data mmc_pdata __initconst = { | |||
| 161 | }; | 162 | }; |
| 162 | 163 | ||
| 163 | /* Framebuffer support */ | 164 | /* Framebuffer support */ |
| 164 | static const struct ipu_platform_data ipu_data __initconst = { | ||
| 165 | .irq_base = MXC_IPU_IRQ_START, | ||
| 166 | }; | ||
| 167 | |||
| 168 | static const struct fb_videomode fb_modedb = { | 165 | static const struct fb_videomode fb_modedb = { |
| 169 | /* 640x480 TFT panel (IPS-056T) */ | 166 | /* 640x480 TFT panel (IPS-056T) */ |
| 170 | .name = "CRT-VGA", | 167 | .name = "CRT-VGA", |
| @@ -198,7 +195,7 @@ static void __init mx31lilly_init_fb(void) | |||
| 198 | return; | 195 | return; |
| 199 | } | 196 | } |
| 200 | 197 | ||
| 201 | imx31_add_ipu_core(&ipu_data); | 198 | imx31_add_ipu_core(); |
| 202 | imx31_add_mx3_sdc_fb(&fb_pdata); | 199 | imx31_add_mx3_sdc_fb(&fb_pdata); |
| 203 | gpio_direction_output(LCD_VCC_EN_GPIO, 1); | 200 | gpio_direction_output(LCD_VCC_EN_GPIO, 1); |
| 204 | } | 201 | } |
diff --git a/arch/arm/mach-imx/mx31lite-db.c b/arch/arm/mach-imx/mx31lite-db.c index bf0fb87946ba..d639391a5841 100644 --- a/arch/arm/mach-imx/mx31lite-db.c +++ b/arch/arm/mach-imx/mx31lite-db.c | |||
| @@ -116,7 +116,8 @@ static int mxc_mmc1_init(struct device *dev, | |||
| 116 | gpio_direction_input(gpio_det); | 116 | gpio_direction_input(gpio_det); |
| 117 | gpio_direction_input(gpio_wp); | 117 | gpio_direction_input(gpio_wp); |
| 118 | 118 | ||
| 119 | ret = request_irq(IOMUX_TO_IRQ(MX31_PIN_DCD_DCE1), detect_irq, | 119 | ret = request_irq(gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_DCD_DCE1)), |
| 120 | detect_irq, | ||
| 120 | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, | 121 | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, |
| 121 | "MMC detect", data); | 122 | "MMC detect", data); |
| 122 | if (ret) | 123 | if (ret) |
| @@ -137,7 +138,7 @@ static void mxc_mmc1_exit(struct device *dev, void *data) | |||
| 137 | { | 138 | { |
| 138 | gpio_free(gpio_det); | 139 | gpio_free(gpio_det); |
| 139 | gpio_free(gpio_wp); | 140 | gpio_free(gpio_wp); |
| 140 | free_irq(IOMUX_TO_IRQ(MX31_PIN_DCD_DCE1), data); | 141 | free_irq(gpio_to_irq(IOMUX_TO_GPIO(MX31_PIN_DCD_DCE1)), data); |
| 141 | } | 142 | } |
| 142 | 143 | ||
| 143 | static const struct imxmmc_platform_data mmc_pdata __initconst = { | 144 | static const struct imxmmc_platform_data mmc_pdata __initconst = { |
diff --git a/arch/arm/mach-imx/mx51_efika.c b/arch/arm/mach-imx/mx51_efika.c index ec6ca91b299b..ee870c49bc63 100644 --- a/arch/arm/mach-imx/mx51_efika.c +++ b/arch/arm/mach-imx/mx51_efika.c | |||
| @@ -587,7 +587,7 @@ static struct spi_board_info mx51_efika_spi_board_info[] __initdata = { | |||
| 587 | .bus_num = 0, | 587 | .bus_num = 0, |
| 588 | .chip_select = 0, | 588 | .chip_select = 0, |
| 589 | .platform_data = &mx51_efika_mc13892_data, | 589 | .platform_data = &mx51_efika_mc13892_data, |
| 590 | .irq = IMX_GPIO_TO_IRQ(EFIKAMX_PMIC), | 590 | /* irq number is run-time assigned */ |
| 591 | }, | 591 | }, |
| 592 | }; | 592 | }; |
| 593 | 593 | ||
| @@ -620,6 +620,7 @@ void __init efika_board_common_init(void) | |||
| 620 | 620 | ||
| 621 | gpio_request(EFIKAMX_PMIC, "pmic irq"); | 621 | gpio_request(EFIKAMX_PMIC, "pmic irq"); |
| 622 | gpio_direction_input(EFIKAMX_PMIC); | 622 | gpio_direction_input(EFIKAMX_PMIC); |
| 623 | mx51_efika_spi_board_info[1].irq = gpio_to_irq(EFIKAMX_PMIC); | ||
| 623 | spi_register_board_info(mx51_efika_spi_board_info, | 624 | spi_register_board_info(mx51_efika_spi_board_info, |
| 624 | ARRAY_SIZE(mx51_efika_spi_board_info)); | 625 | ARRAY_SIZE(mx51_efika_spi_board_info)); |
| 625 | imx51_add_ecspi(0, &mx51_efika_spi_pdata); | 626 | imx51_add_ecspi(0, &mx51_efika_spi_pdata); |
diff --git a/arch/arm/mach-imx/pcm970-baseboard.c b/arch/arm/mach-imx/pcm970-baseboard.c index 99afbc3f43a3..9917e2ff51da 100644 --- a/arch/arm/mach-imx/pcm970-baseboard.c +++ b/arch/arm/mach-imx/pcm970-baseboard.c | |||
| @@ -95,14 +95,14 @@ static int pcm970_sdhc2_init(struct device *dev, irq_handler_t detect_irq, void | |||
| 95 | { | 95 | { |
| 96 | int ret; | 96 | int ret; |
| 97 | 97 | ||
| 98 | ret = request_irq(IRQ_GPIOC(29), detect_irq, IRQF_TRIGGER_FALLING, | 98 | ret = request_irq(gpio_to_irq(IMX_GPIO_NR(3, 29)), detect_irq, |
| 99 | "imx-mmc-detect", data); | 99 | IRQF_TRIGGER_FALLING, "imx-mmc-detect", data); |
| 100 | if (ret) | 100 | if (ret) |
| 101 | return ret; | 101 | return ret; |
| 102 | 102 | ||
| 103 | ret = gpio_request(GPIO_PORTC + 28, "imx-mmc-ro"); | 103 | ret = gpio_request(GPIO_PORTC + 28, "imx-mmc-ro"); |
| 104 | if (ret) { | 104 | if (ret) { |
| 105 | free_irq(IRQ_GPIOC(29), data); | 105 | free_irq(gpio_to_irq(IMX_GPIO_NR(3, 29)), data); |
| 106 | return ret; | 106 | return ret; |
| 107 | } | 107 | } |
| 108 | 108 | ||
| @@ -113,7 +113,7 @@ static int pcm970_sdhc2_init(struct device *dev, irq_handler_t detect_irq, void | |||
| 113 | 113 | ||
| 114 | static void pcm970_sdhc2_exit(struct device *dev, void *data) | 114 | static void pcm970_sdhc2_exit(struct device *dev, void *data) |
| 115 | { | 115 | { |
| 116 | free_irq(IRQ_GPIOC(29), data); | 116 | free_irq(gpio_to_irq(IMX_GPIO_NR(3, 29)), data); |
| 117 | gpio_free(GPIO_PORTC + 28); | 117 | gpio_free(GPIO_PORTC + 28); |
| 118 | } | 118 | } |
| 119 | 119 | ||
| @@ -192,8 +192,7 @@ static struct resource pcm970_sja1000_resources[] = { | |||
| 192 | .end = MX27_CS4_BASE_ADDR + 0x100 - 1, | 192 | .end = MX27_CS4_BASE_ADDR + 0x100 - 1, |
| 193 | .flags = IORESOURCE_MEM, | 193 | .flags = IORESOURCE_MEM, |
| 194 | }, { | 194 | }, { |
| 195 | .start = IRQ_GPIOE(19), | 195 | /* irq number is run-time assigned */ |
| 196 | .end = IRQ_GPIOE(19), | ||
| 197 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE, | 196 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE, |
| 198 | }, | 197 | }, |
| 199 | }; | 198 | }; |
| @@ -227,5 +226,7 @@ void __init pcm970_baseboard_init(void) | |||
| 227 | imx27_add_imx_fb(&pcm038_fb_data); | 226 | imx27_add_imx_fb(&pcm038_fb_data); |
| 228 | mxc_gpio_mode(GPIO_PORTC | 28 | GPIO_GPIO | GPIO_IN); | 227 | mxc_gpio_mode(GPIO_PORTC | 28 | GPIO_GPIO | GPIO_IN); |
| 229 | imx27_add_mxc_mmc(1, &sdhc_pdata); | 228 | imx27_add_mxc_mmc(1, &sdhc_pdata); |
| 229 | pcm970_sja1000_resources[1].start = gpio_to_irq(IMX_GPIO_NR(5, 19)); | ||
| 230 | pcm970_sja1000_resources[1].end = gpio_to_irq(IMX_GPIO_NR(5, 19)); | ||
| 230 | platform_device_register(&pcm970_sja1000); | 231 | platform_device_register(&pcm970_sja1000); |
| 231 | } | 232 | } |
diff --git a/arch/arm/mach-rpc/irq.c b/arch/arm/mach-rpc/irq.c index cf0e669eaf1a..3e4fa849c64d 100644 --- a/arch/arm/mach-rpc/irq.c +++ b/arch/arm/mach-rpc/irq.c | |||
| @@ -163,6 +163,6 @@ void __init rpc_init_irq(void) | |||
| 163 | } | 163 | } |
| 164 | } | 164 | } |
| 165 | 165 | ||
| 166 | init_FIQ(); | 166 | init_FIQ(FIQ_START); |
| 167 | } | 167 | } |
| 168 | 168 | ||
diff --git a/arch/arm/plat-mxc/3ds_debugboard.c b/arch/arm/plat-mxc/3ds_debugboard.c index 5cac2c540f4f..5c10ad05df74 100644 --- a/arch/arm/plat-mxc/3ds_debugboard.c +++ b/arch/arm/plat-mxc/3ds_debugboard.c | |||
| @@ -12,9 +12,11 @@ | |||
| 12 | 12 | ||
| 13 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
| 14 | #include <linux/irq.h> | 14 | #include <linux/irq.h> |
| 15 | #include <linux/irqdomain.h> | ||
| 15 | #include <linux/io.h> | 16 | #include <linux/io.h> |
| 16 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
| 17 | #include <linux/gpio.h> | 18 | #include <linux/gpio.h> |
| 19 | #include <linux/module.h> | ||
| 18 | #include <linux/smsc911x.h> | 20 | #include <linux/smsc911x.h> |
| 19 | #include <linux/regulator/machine.h> | 21 | #include <linux/regulator/machine.h> |
| 20 | #include <linux/regulator/fixed.h> | 22 | #include <linux/regulator/fixed.h> |
| @@ -48,27 +50,22 @@ | |||
| 48 | /* CPU ID and Personality ID */ | 50 | /* CPU ID and Personality ID */ |
| 49 | #define MCU_BOARD_ID_REG 0x68 | 51 | #define MCU_BOARD_ID_REG 0x68 |
| 50 | 52 | ||
| 51 | #define MXC_IRQ_TO_EXPIO(irq) ((irq) - MXC_BOARD_IRQ_START) | ||
| 52 | #define MXC_IRQ_TO_GPIO(irq) ((irq) - MXC_INTERNAL_IRQS) | ||
| 53 | |||
| 54 | #define MXC_EXP_IO_BASE (MXC_BOARD_IRQ_START) | ||
| 55 | #define MXC_MAX_EXP_IO_LINES 16 | 53 | #define MXC_MAX_EXP_IO_LINES 16 |
| 56 | 54 | ||
| 57 | /* interrupts like external uart , external ethernet etc*/ | 55 | /* interrupts like external uart , external ethernet etc*/ |
| 58 | #define EXPIO_INT_ENET (MXC_BOARD_IRQ_START + 0) | 56 | #define EXPIO_INT_ENET 0 |
| 59 | #define EXPIO_INT_XUART_A (MXC_BOARD_IRQ_START + 1) | 57 | #define EXPIO_INT_XUART_A 1 |
| 60 | #define EXPIO_INT_XUART_B (MXC_BOARD_IRQ_START + 2) | 58 | #define EXPIO_INT_XUART_B 2 |
| 61 | #define EXPIO_INT_BUTTON_A (MXC_BOARD_IRQ_START + 3) | 59 | #define EXPIO_INT_BUTTON_A 3 |
| 62 | #define EXPIO_INT_BUTTON_B (MXC_BOARD_IRQ_START + 4) | 60 | #define EXPIO_INT_BUTTON_B 4 |
| 63 | 61 | ||
| 64 | static void __iomem *brd_io; | 62 | static void __iomem *brd_io; |
| 63 | static struct irq_domain *domain; | ||
| 65 | 64 | ||
| 66 | static struct resource smsc911x_resources[] = { | 65 | static struct resource smsc911x_resources[] = { |
| 67 | { | 66 | { |
| 68 | .flags = IORESOURCE_MEM, | 67 | .flags = IORESOURCE_MEM, |
| 69 | } , { | 68 | } , { |
| 70 | .start = EXPIO_INT_ENET, | ||
| 71 | .end = EXPIO_INT_ENET, | ||
| 72 | .flags = IORESOURCE_IRQ, | 69 | .flags = IORESOURCE_IRQ, |
| 73 | }, | 70 | }, |
| 74 | }; | 71 | }; |
| @@ -100,11 +97,11 @@ static void mxc_expio_irq_handler(u32 irq, struct irq_desc *desc) | |||
| 100 | imr_val = __raw_readw(brd_io + INTR_MASK_REG); | 97 | imr_val = __raw_readw(brd_io + INTR_MASK_REG); |
| 101 | int_valid = __raw_readw(brd_io + INTR_STATUS_REG) & ~imr_val; | 98 | int_valid = __raw_readw(brd_io + INTR_STATUS_REG) & ~imr_val; |
| 102 | 99 | ||
| 103 | expio_irq = MXC_BOARD_IRQ_START; | 100 | expio_irq = 0; |
| 104 | for (; int_valid != 0; int_valid >>= 1, expio_irq++) { | 101 | for (; int_valid != 0; int_valid >>= 1, expio_irq++) { |
| 105 | if ((int_valid & 1) == 0) | 102 | if ((int_valid & 1) == 0) |
| 106 | continue; | 103 | continue; |
| 107 | generic_handle_irq(expio_irq); | 104 | generic_handle_irq(irq_find_mapping(domain, expio_irq)); |
| 108 | } | 105 | } |
| 109 | 106 | ||
| 110 | desc->irq_data.chip->irq_ack(&desc->irq_data); | 107 | desc->irq_data.chip->irq_ack(&desc->irq_data); |
| @@ -118,7 +115,7 @@ static void mxc_expio_irq_handler(u32 irq, struct irq_desc *desc) | |||
| 118 | static void expio_mask_irq(struct irq_data *d) | 115 | static void expio_mask_irq(struct irq_data *d) |
| 119 | { | 116 | { |
| 120 | u16 reg; | 117 | u16 reg; |
| 121 | u32 expio = MXC_IRQ_TO_EXPIO(d->irq); | 118 | u32 expio = d->hwirq; |
| 122 | 119 | ||
| 123 | reg = __raw_readw(brd_io + INTR_MASK_REG); | 120 | reg = __raw_readw(brd_io + INTR_MASK_REG); |
| 124 | reg |= (1 << expio); | 121 | reg |= (1 << expio); |
| @@ -127,7 +124,7 @@ static void expio_mask_irq(struct irq_data *d) | |||
| 127 | 124 | ||
| 128 | static void expio_ack_irq(struct irq_data *d) | 125 | static void expio_ack_irq(struct irq_data *d) |
| 129 | { | 126 | { |
| 130 | u32 expio = MXC_IRQ_TO_EXPIO(d->irq); | 127 | u32 expio = d->hwirq; |
| 131 | 128 | ||
| 132 | __raw_writew(1 << expio, brd_io + INTR_RESET_REG); | 129 | __raw_writew(1 << expio, brd_io + INTR_RESET_REG); |
| 133 | __raw_writew(0, brd_io + INTR_RESET_REG); | 130 | __raw_writew(0, brd_io + INTR_RESET_REG); |
| @@ -137,7 +134,7 @@ static void expio_ack_irq(struct irq_data *d) | |||
| 137 | static void expio_unmask_irq(struct irq_data *d) | 134 | static void expio_unmask_irq(struct irq_data *d) |
| 138 | { | 135 | { |
| 139 | u16 reg; | 136 | u16 reg; |
| 140 | u32 expio = MXC_IRQ_TO_EXPIO(d->irq); | 137 | u32 expio = d->hwirq; |
| 141 | 138 | ||
| 142 | reg = __raw_readw(brd_io + INTR_MASK_REG); | 139 | reg = __raw_readw(brd_io + INTR_MASK_REG); |
| 143 | reg &= ~(1 << expio); | 140 | reg &= ~(1 << expio); |
| @@ -155,8 +152,10 @@ static struct regulator_consumer_supply dummy_supplies[] = { | |||
| 155 | REGULATOR_SUPPLY("vddvario", "smsc911x"), | 152 | REGULATOR_SUPPLY("vddvario", "smsc911x"), |
| 156 | }; | 153 | }; |
| 157 | 154 | ||
| 158 | int __init mxc_expio_init(u32 base, u32 p_irq) | 155 | int __init mxc_expio_init(u32 base, u32 intr_gpio) |
| 159 | { | 156 | { |
| 157 | u32 p_irq = gpio_to_irq(intr_gpio); | ||
| 158 | int irq_base; | ||
| 160 | int i; | 159 | int i; |
| 161 | 160 | ||
| 162 | brd_io = ioremap(BOARD_IO_ADDR(base), SZ_4K); | 161 | brd_io = ioremap(BOARD_IO_ADDR(base), SZ_4K); |
| @@ -178,16 +177,23 @@ int __init mxc_expio_init(u32 base, u32 p_irq) | |||
| 178 | /* | 177 | /* |
| 179 | * Configure INT line as GPIO input | 178 | * Configure INT line as GPIO input |
| 180 | */ | 179 | */ |
| 181 | gpio_request(MXC_IRQ_TO_GPIO(p_irq), "expio_pirq"); | 180 | gpio_request(intr_gpio, "expio_pirq"); |
| 182 | gpio_direction_input(MXC_IRQ_TO_GPIO(p_irq)); | 181 | gpio_direction_input(intr_gpio); |
| 183 | 182 | ||
| 184 | /* disable the interrupt and clear the status */ | 183 | /* disable the interrupt and clear the status */ |
| 185 | __raw_writew(0, brd_io + INTR_MASK_REG); | 184 | __raw_writew(0, brd_io + INTR_MASK_REG); |
| 186 | __raw_writew(0xFFFF, brd_io + INTR_RESET_REG); | 185 | __raw_writew(0xFFFF, brd_io + INTR_RESET_REG); |
| 187 | __raw_writew(0, brd_io + INTR_RESET_REG); | 186 | __raw_writew(0, brd_io + INTR_RESET_REG); |
| 188 | __raw_writew(0x1F, brd_io + INTR_MASK_REG); | 187 | __raw_writew(0x1F, brd_io + INTR_MASK_REG); |
| 189 | for (i = MXC_EXP_IO_BASE; | 188 | |
| 190 | i < (MXC_EXP_IO_BASE + MXC_MAX_EXP_IO_LINES); i++) { | 189 | irq_base = irq_alloc_descs(-1, 0, MXC_MAX_EXP_IO_LINES, numa_node_id()); |
| 190 | WARN_ON(irq_base < 0); | ||
| 191 | |||
| 192 | domain = irq_domain_add_legacy(NULL, MXC_MAX_EXP_IO_LINES, irq_base, 0, | ||
| 193 | &irq_domain_simple_ops, NULL); | ||
| 194 | WARN_ON(!domain); | ||
| 195 | |||
| 196 | for (i = irq_base; i < irq_base + MXC_MAX_EXP_IO_LINES; i++) { | ||
| 191 | irq_set_chip_and_handler(i, &expio_irq_chip, handle_level_irq); | 197 | irq_set_chip_and_handler(i, &expio_irq_chip, handle_level_irq); |
| 192 | set_irq_flags(i, IRQF_VALID); | 198 | set_irq_flags(i, IRQF_VALID); |
| 193 | } | 199 | } |
| @@ -199,6 +205,8 @@ int __init mxc_expio_init(u32 base, u32 p_irq) | |||
| 199 | 205 | ||
| 200 | smsc911x_resources[0].start = LAN9217_BASE_ADDR(base); | 206 | smsc911x_resources[0].start = LAN9217_BASE_ADDR(base); |
| 201 | smsc911x_resources[0].end = LAN9217_BASE_ADDR(base) + 0x100 - 1; | 207 | smsc911x_resources[0].end = LAN9217_BASE_ADDR(base) + 0x100 - 1; |
| 208 | smsc911x_resources[1].start = irq_find_mapping(domain, EXPIO_INT_ENET); | ||
| 209 | smsc911x_resources[1].end = irq_find_mapping(domain, EXPIO_INT_ENET); | ||
| 202 | platform_device_register(&smsc_lan9217_device); | 210 | platform_device_register(&smsc_lan9217_device); |
| 203 | 211 | ||
| 204 | return 0; | 212 | return 0; |
diff --git a/arch/arm/plat-mxc/avic.c b/arch/arm/plat-mxc/avic.c index 689f81f9593b..f3d671ff7f1b 100644 --- a/arch/arm/plat-mxc/avic.c +++ b/arch/arm/plat-mxc/avic.c | |||
| @@ -19,7 +19,9 @@ | |||
| 19 | 19 | ||
| 20 | #include <linux/module.h> | 20 | #include <linux/module.h> |
| 21 | #include <linux/irq.h> | 21 | #include <linux/irq.h> |
| 22 | #include <linux/irqdomain.h> | ||
| 22 | #include <linux/io.h> | 23 | #include <linux/io.h> |
| 24 | #include <linux/of.h> | ||
| 23 | #include <mach/common.h> | 25 | #include <mach/common.h> |
| 24 | #include <asm/mach/irq.h> | 26 | #include <asm/mach/irq.h> |
| 25 | #include <asm/exception.h> | 27 | #include <asm/exception.h> |
| @@ -50,15 +52,19 @@ | |||
| 50 | #define AVIC_NUM_IRQS 64 | 52 | #define AVIC_NUM_IRQS 64 |
| 51 | 53 | ||
| 52 | void __iomem *avic_base; | 54 | void __iomem *avic_base; |
| 55 | static struct irq_domain *domain; | ||
| 53 | 56 | ||
| 54 | static u32 avic_saved_mask_reg[2]; | 57 | static u32 avic_saved_mask_reg[2]; |
| 55 | 58 | ||
| 56 | #ifdef CONFIG_MXC_IRQ_PRIOR | 59 | #ifdef CONFIG_MXC_IRQ_PRIOR |
| 57 | static int avic_irq_set_priority(unsigned char irq, unsigned char prio) | 60 | static int avic_irq_set_priority(unsigned char irq, unsigned char prio) |
| 58 | { | 61 | { |
| 62 | struct irq_data *d = irq_get_irq_data(irq); | ||
| 59 | unsigned int temp; | 63 | unsigned int temp; |
| 60 | unsigned int mask = 0x0F << irq % 8 * 4; | 64 | unsigned int mask = 0x0F << irq % 8 * 4; |
| 61 | 65 | ||
| 66 | irq = d->hwirq; | ||
| 67 | |||
| 62 | if (irq >= AVIC_NUM_IRQS) | 68 | if (irq >= AVIC_NUM_IRQS) |
| 63 | return -EINVAL; | 69 | return -EINVAL; |
| 64 | 70 | ||
| @@ -75,8 +81,11 @@ static int avic_irq_set_priority(unsigned char irq, unsigned char prio) | |||
| 75 | #ifdef CONFIG_FIQ | 81 | #ifdef CONFIG_FIQ |
| 76 | static int avic_set_irq_fiq(unsigned int irq, unsigned int type) | 82 | static int avic_set_irq_fiq(unsigned int irq, unsigned int type) |
| 77 | { | 83 | { |
| 84 | struct irq_data *d = irq_get_irq_data(irq); | ||
| 78 | unsigned int irqt; | 85 | unsigned int irqt; |
| 79 | 86 | ||
| 87 | irq = d->hwirq; | ||
| 88 | |||
| 80 | if (irq >= AVIC_NUM_IRQS) | 89 | if (irq >= AVIC_NUM_IRQS) |
| 81 | return -EINVAL; | 90 | return -EINVAL; |
| 82 | 91 | ||
| @@ -108,7 +117,7 @@ static void avic_irq_suspend(struct irq_data *d) | |||
| 108 | { | 117 | { |
| 109 | struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); | 118 | struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); |
| 110 | struct irq_chip_type *ct = gc->chip_types; | 119 | struct irq_chip_type *ct = gc->chip_types; |
| 111 | int idx = gc->irq_base >> 5; | 120 | int idx = d->hwirq >> 5; |
| 112 | 121 | ||
| 113 | avic_saved_mask_reg[idx] = __raw_readl(avic_base + ct->regs.mask); | 122 | avic_saved_mask_reg[idx] = __raw_readl(avic_base + ct->regs.mask); |
| 114 | __raw_writel(gc->wake_active, avic_base + ct->regs.mask); | 123 | __raw_writel(gc->wake_active, avic_base + ct->regs.mask); |
| @@ -118,7 +127,7 @@ static void avic_irq_resume(struct irq_data *d) | |||
| 118 | { | 127 | { |
| 119 | struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); | 128 | struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); |
| 120 | struct irq_chip_type *ct = gc->chip_types; | 129 | struct irq_chip_type *ct = gc->chip_types; |
| 121 | int idx = gc->irq_base >> 5; | 130 | int idx = d->hwirq >> 5; |
| 122 | 131 | ||
| 123 | __raw_writel(avic_saved_mask_reg[idx], avic_base + ct->regs.mask); | 132 | __raw_writel(avic_saved_mask_reg[idx], avic_base + ct->regs.mask); |
| 124 | } | 133 | } |
| @@ -128,11 +137,10 @@ static void avic_irq_resume(struct irq_data *d) | |||
| 128 | #define avic_irq_resume NULL | 137 | #define avic_irq_resume NULL |
| 129 | #endif | 138 | #endif |
| 130 | 139 | ||
| 131 | static __init void avic_init_gc(unsigned int irq_start) | 140 | static __init void avic_init_gc(int idx, unsigned int irq_start) |
| 132 | { | 141 | { |
| 133 | struct irq_chip_generic *gc; | 142 | struct irq_chip_generic *gc; |
| 134 | struct irq_chip_type *ct; | 143 | struct irq_chip_type *ct; |
| 135 | int idx = irq_start >> 5; | ||
| 136 | 144 | ||
| 137 | gc = irq_alloc_generic_chip("mxc-avic", 1, irq_start, avic_base, | 145 | gc = irq_alloc_generic_chip("mxc-avic", 1, irq_start, avic_base, |
| 138 | handle_level_irq); | 146 | handle_level_irq); |
| @@ -161,7 +169,7 @@ asmlinkage void __exception_irq_entry avic_handle_irq(struct pt_regs *regs) | |||
| 161 | if (nivector == 0xffff) | 169 | if (nivector == 0xffff) |
| 162 | break; | 170 | break; |
| 163 | 171 | ||
| 164 | handle_IRQ(nivector, regs); | 172 | handle_IRQ(irq_find_mapping(domain, nivector), regs); |
| 165 | } while (1); | 173 | } while (1); |
| 166 | } | 174 | } |
| 167 | 175 | ||
| @@ -172,6 +180,8 @@ asmlinkage void __exception_irq_entry avic_handle_irq(struct pt_regs *regs) | |||
| 172 | */ | 180 | */ |
| 173 | void __init mxc_init_irq(void __iomem *irqbase) | 181 | void __init mxc_init_irq(void __iomem *irqbase) |
| 174 | { | 182 | { |
| 183 | struct device_node *np; | ||
| 184 | int irq_base; | ||
| 175 | int i; | 185 | int i; |
| 176 | 186 | ||
| 177 | avic_base = irqbase; | 187 | avic_base = irqbase; |
| @@ -190,8 +200,16 @@ void __init mxc_init_irq(void __iomem *irqbase) | |||
| 190 | __raw_writel(0, avic_base + AVIC_INTTYPEH); | 200 | __raw_writel(0, avic_base + AVIC_INTTYPEH); |
| 191 | __raw_writel(0, avic_base + AVIC_INTTYPEL); | 201 | __raw_writel(0, avic_base + AVIC_INTTYPEL); |
| 192 | 202 | ||
| 193 | for (i = 0; i < AVIC_NUM_IRQS; i += 32) | 203 | irq_base = irq_alloc_descs(-1, 0, AVIC_NUM_IRQS, numa_node_id()); |
| 194 | avic_init_gc(i); | 204 | WARN_ON(irq_base < 0); |
| 205 | |||
| 206 | np = of_find_compatible_node(NULL, NULL, "fsl,avic"); | ||
| 207 | domain = irq_domain_add_legacy(np, AVIC_NUM_IRQS, irq_base, 0, | ||
| 208 | &irq_domain_simple_ops, NULL); | ||
| 209 | WARN_ON(!domain); | ||
| 210 | |||
| 211 | for (i = 0; i < AVIC_NUM_IRQS / 32; i++, irq_base += 32) | ||
| 212 | avic_init_gc(i, irq_base); | ||
| 195 | 213 | ||
| 196 | /* Set default priority value (0) for all IRQ's */ | 214 | /* Set default priority value (0) for all IRQ's */ |
| 197 | for (i = 0; i < 8; i++) | 215 | for (i = 0; i < 8; i++) |
| @@ -199,7 +217,7 @@ void __init mxc_init_irq(void __iomem *irqbase) | |||
| 199 | 217 | ||
| 200 | #ifdef CONFIG_FIQ | 218 | #ifdef CONFIG_FIQ |
| 201 | /* Initialize FIQ */ | 219 | /* Initialize FIQ */ |
| 202 | init_FIQ(); | 220 | init_FIQ(FIQ_START); |
| 203 | #endif | 221 | #endif |
| 204 | 222 | ||
| 205 | printk(KERN_INFO "MXC IRQ initialized\n"); | 223 | printk(KERN_INFO "MXC IRQ initialized\n"); |
diff --git a/arch/arm/plat-mxc/devices/platform-ipu-core.c b/arch/arm/plat-mxc/devices/platform-ipu-core.c index 79d340ae0af1..d1e33cc6f12e 100644 --- a/arch/arm/plat-mxc/devices/platform-ipu-core.c +++ b/arch/arm/plat-mxc/devices/platform-ipu-core.c | |||
| @@ -30,8 +30,7 @@ const struct imx_ipu_core_data imx35_ipu_core_data __initconst = | |||
| 30 | static struct platform_device *imx_ipu_coredev __initdata; | 30 | static struct platform_device *imx_ipu_coredev __initdata; |
| 31 | 31 | ||
| 32 | struct platform_device *__init imx_add_ipu_core( | 32 | struct platform_device *__init imx_add_ipu_core( |
| 33 | const struct imx_ipu_core_data *data, | 33 | const struct imx_ipu_core_data *data) |
| 34 | const struct ipu_platform_data *pdata) | ||
| 35 | { | 34 | { |
| 36 | /* The resource order is important! */ | 35 | /* The resource order is important! */ |
| 37 | struct resource res[] = { | 36 | struct resource res[] = { |
| @@ -55,7 +54,7 @@ struct platform_device *__init imx_add_ipu_core( | |||
| 55 | }; | 54 | }; |
| 56 | 55 | ||
| 57 | return imx_ipu_coredev = imx_add_platform_device("ipu-core", -1, | 56 | return imx_ipu_coredev = imx_add_platform_device("ipu-core", -1, |
| 58 | res, ARRAY_SIZE(res), pdata, sizeof(*pdata)); | 57 | res, ARRAY_SIZE(res), NULL, 0); |
| 59 | } | 58 | } |
| 60 | 59 | ||
| 61 | struct platform_device *__init imx_alloc_mx3_camera( | 60 | struct platform_device *__init imx_alloc_mx3_camera( |
diff --git a/arch/arm/plat-mxc/include/mach/3ds_debugboard.h b/arch/arm/plat-mxc/include/mach/3ds_debugboard.h index a384fdd49c62..9fd6cb3f8fad 100644 --- a/arch/arm/plat-mxc/include/mach/3ds_debugboard.h +++ b/arch/arm/plat-mxc/include/mach/3ds_debugboard.h | |||
| @@ -13,6 +13,6 @@ | |||
| 13 | #ifndef __ASM_ARCH_MXC_3DS_DB_H__ | 13 | #ifndef __ASM_ARCH_MXC_3DS_DB_H__ |
| 14 | #define __ASM_ARCH_MXC_3DS_DB_H__ | 14 | #define __ASM_ARCH_MXC_3DS_DB_H__ |
| 15 | 15 | ||
| 16 | extern int __init mxc_expio_init(u32 base, u32 p_irq); | 16 | extern int __init mxc_expio_init(u32 base, u32 intr_gpio); |
| 17 | 17 | ||
| 18 | #endif /* __ASM_ARCH_MXC_3DS_DB_H__ */ | 18 | #endif /* __ASM_ARCH_MXC_3DS_DB_H__ */ |
diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h index 1b2258daa05b..a7f5bb1084d7 100644 --- a/arch/arm/plat-mxc/include/mach/devices-common.h +++ b/arch/arm/plat-mxc/include/mach/devices-common.h | |||
| @@ -183,7 +183,6 @@ struct platform_device *__init imx_add_imx_udc( | |||
| 183 | const struct imx_imx_udc_data *data, | 183 | const struct imx_imx_udc_data *data, |
| 184 | const struct imxusb_platform_data *pdata); | 184 | const struct imxusb_platform_data *pdata); |
| 185 | 185 | ||
| 186 | #include <mach/ipu.h> | ||
| 187 | #include <mach/mx3fb.h> | 186 | #include <mach/mx3fb.h> |
| 188 | #include <mach/mx3_camera.h> | 187 | #include <mach/mx3_camera.h> |
| 189 | struct imx_ipu_core_data { | 188 | struct imx_ipu_core_data { |
| @@ -192,8 +191,7 @@ struct imx_ipu_core_data { | |||
| 192 | resource_size_t errirq; | 191 | resource_size_t errirq; |
| 193 | }; | 192 | }; |
| 194 | struct platform_device *__init imx_add_ipu_core( | 193 | struct platform_device *__init imx_add_ipu_core( |
| 195 | const struct imx_ipu_core_data *data, | 194 | const struct imx_ipu_core_data *data); |
| 196 | const struct ipu_platform_data *pdata); | ||
| 197 | struct platform_device *__init imx_alloc_mx3_camera( | 195 | struct platform_device *__init imx_alloc_mx3_camera( |
| 198 | const struct imx_ipu_core_data *data, | 196 | const struct imx_ipu_core_data *data, |
| 199 | const struct mx3_camera_pdata *pdata); | 197 | const struct mx3_camera_pdata *pdata); |
diff --git a/arch/arm/plat-mxc/include/mach/hardware.h b/arch/arm/plat-mxc/include/mach/hardware.h index 0630513554de..1d432a75e409 100644 --- a/arch/arm/plat-mxc/include/mach/hardware.h +++ b/arch/arm/plat-mxc/include/mach/hardware.h | |||
| @@ -128,6 +128,4 @@ | |||
| 128 | /* range e.g. GPIO_1_5 is gpio 5 under linux */ | 128 | /* range e.g. GPIO_1_5 is gpio 5 under linux */ |
| 129 | #define IMX_GPIO_NR(bank, nr) (((bank) - 1) * 32 + (nr)) | 129 | #define IMX_GPIO_NR(bank, nr) (((bank) - 1) * 32 + (nr)) |
| 130 | 130 | ||
| 131 | #define IMX_GPIO_TO_IRQ(gpio) (MXC_GPIO_IRQ_START + (gpio)) | ||
| 132 | |||
| 133 | #endif /* __ASM_ARCH_MXC_HARDWARE_H__ */ | 131 | #endif /* __ASM_ARCH_MXC_HARDWARE_H__ */ |
diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx3.h b/arch/arm/plat-mxc/include/mach/iomux-mx3.h index 63f22a009a65..d8b65b51f2a9 100644 --- a/arch/arm/plat-mxc/include/mach/iomux-mx3.h +++ b/arch/arm/plat-mxc/include/mach/iomux-mx3.h | |||
| @@ -160,9 +160,6 @@ int mxc_iomux_mode(unsigned int pin_mode); | |||
| 160 | 160 | ||
| 161 | #define IOMUX_TO_GPIO(iomux_pin) \ | 161 | #define IOMUX_TO_GPIO(iomux_pin) \ |
| 162 | ((iomux_pin & IOMUX_GPIONUM_MASK) >> IOMUX_GPIONUM_SHIFT) | 162 | ((iomux_pin & IOMUX_GPIONUM_MASK) >> IOMUX_GPIONUM_SHIFT) |
| 163 | #define IOMUX_TO_IRQ(iomux_pin) \ | ||
| 164 | (((iomux_pin & IOMUX_GPIONUM_MASK) >> IOMUX_GPIONUM_SHIFT) + \ | ||
| 165 | MXC_GPIO_IRQ_START) | ||
| 166 | 163 | ||
| 167 | /* | 164 | /* |
| 168 | * This enumeration is constructed based on the Section | 165 | * This enumeration is constructed based on the Section |
diff --git a/arch/arm/plat-mxc/include/mach/iomux-v1.h b/arch/arm/plat-mxc/include/mach/iomux-v1.h index f7d18046c04f..02651a40fe23 100644 --- a/arch/arm/plat-mxc/include/mach/iomux-v1.h +++ b/arch/arm/plat-mxc/include/mach/iomux-v1.h | |||
| @@ -85,13 +85,6 @@ | |||
| 85 | #define GPIO_BOUT_0 (2 << GPIO_BOUT_SHIFT) | 85 | #define GPIO_BOUT_0 (2 << GPIO_BOUT_SHIFT) |
| 86 | #define GPIO_BOUT_1 (3 << GPIO_BOUT_SHIFT) | 86 | #define GPIO_BOUT_1 (3 << GPIO_BOUT_SHIFT) |
| 87 | 87 | ||
| 88 | #define IRQ_GPIOA(x) (MXC_GPIO_IRQ_START + x) | ||
| 89 | #define IRQ_GPIOB(x) (IRQ_GPIOA(32) + x) | ||
| 90 | #define IRQ_GPIOC(x) (IRQ_GPIOB(32) + x) | ||
| 91 | #define IRQ_GPIOD(x) (IRQ_GPIOC(32) + x) | ||
| 92 | #define IRQ_GPIOE(x) (IRQ_GPIOD(32) + x) | ||
| 93 | #define IRQ_GPIOF(x) (IRQ_GPIOE(32) + x) | ||
| 94 | |||
| 95 | extern int mxc_gpio_mode(int gpio_mode); | 88 | extern int mxc_gpio_mode(int gpio_mode); |
| 96 | extern int mxc_gpio_setup_multiple_pins(const int *pin_list, unsigned count, | 89 | extern int mxc_gpio_setup_multiple_pins(const int *pin_list, unsigned count, |
| 97 | const char *label); | 90 | const char *label); |
diff --git a/arch/arm/plat-mxc/include/mach/ipu.h b/arch/arm/plat-mxc/include/mach/ipu.h index a9221f1cc1a0..539e559d18b2 100644 --- a/arch/arm/plat-mxc/include/mach/ipu.h +++ b/arch/arm/plat-mxc/include/mach/ipu.h | |||
| @@ -110,10 +110,6 @@ enum ipu_rotate_mode { | |||
| 110 | IPU_ROTATE_90_LEFT = 7, | 110 | IPU_ROTATE_90_LEFT = 7, |
| 111 | }; | 111 | }; |
| 112 | 112 | ||
| 113 | struct ipu_platform_data { | ||
| 114 | unsigned int irq_base; | ||
| 115 | }; | ||
| 116 | |||
| 117 | /* | 113 | /* |
| 118 | * Enumeration of DI ports for ADC. | 114 | * Enumeration of DI ports for ADC. |
| 119 | */ | 115 | */ |
diff --git a/arch/arm/plat-mxc/include/mach/irqs.h b/arch/arm/plat-mxc/include/mach/irqs.h index fd9efb044656..d73f5e8ea9cb 100644 --- a/arch/arm/plat-mxc/include/mach/irqs.h +++ b/arch/arm/plat-mxc/include/mach/irqs.h | |||
| @@ -11,50 +11,6 @@ | |||
| 11 | #ifndef __ASM_ARCH_MXC_IRQS_H__ | 11 | #ifndef __ASM_ARCH_MXC_IRQS_H__ |
| 12 | #define __ASM_ARCH_MXC_IRQS_H__ | 12 | #define __ASM_ARCH_MXC_IRQS_H__ |
| 13 | 13 | ||
| 14 | #include <asm-generic/gpio.h> | ||
| 15 | |||
| 16 | /* | ||
| 17 | * SoCs with GIC interrupt controller have 160 IRQs, those with TZIC | ||
| 18 | * have 128 IRQs, and those with AVIC have 64. | ||
| 19 | * | ||
| 20 | * To support single image, the biggest number should be defined on | ||
| 21 | * top of the list. | ||
| 22 | */ | ||
| 23 | #if defined CONFIG_ARM_GIC | ||
| 24 | #define MXC_INTERNAL_IRQS 160 | ||
| 25 | #elif defined CONFIG_MXC_TZIC | ||
| 26 | #define MXC_INTERNAL_IRQS 128 | ||
| 27 | #else | ||
| 28 | #define MXC_INTERNAL_IRQS 64 | ||
| 29 | #endif | ||
| 30 | |||
| 31 | #define MXC_GPIO_IRQ_START MXC_INTERNAL_IRQS | ||
| 32 | |||
| 33 | /* | ||
| 34 | * The next 16 interrupts are for board specific purposes. Since | ||
| 35 | * the kernel can only run on one machine at a time, we can re-use | ||
| 36 | * these. If you need more, increase MXC_BOARD_IRQS, but keep it | ||
| 37 | * within sensible limits. | ||
| 38 | */ | ||
| 39 | #define MXC_BOARD_IRQ_START (MXC_INTERNAL_IRQS + ARCH_NR_GPIOS) | ||
| 40 | |||
| 41 | #ifdef CONFIG_MACH_MX31ADS_WM1133_EV1 | ||
| 42 | #define MXC_BOARD_IRQS 80 | ||
| 43 | #else | ||
| 44 | #define MXC_BOARD_IRQS 16 | ||
| 45 | #endif | ||
| 46 | |||
| 47 | #define MXC_IPU_IRQ_START (MXC_BOARD_IRQ_START + MXC_BOARD_IRQS) | ||
| 48 | |||
| 49 | #ifdef CONFIG_MX3_IPU_IRQS | ||
| 50 | #define MX3_IPU_IRQS CONFIG_MX3_IPU_IRQS | ||
| 51 | #else | ||
| 52 | #define MX3_IPU_IRQS 0 | ||
| 53 | #endif | ||
| 54 | /* REVISIT: Add IPU irqs on IMX51 */ | ||
| 55 | |||
| 56 | #define NR_IRQS (MXC_IPU_IRQ_START + MX3_IPU_IRQS) | ||
| 57 | |||
| 58 | extern int imx_irq_set_priority(unsigned char irq, unsigned char prio); | 14 | extern int imx_irq_set_priority(unsigned char irq, unsigned char prio); |
| 59 | 15 | ||
| 60 | /* all normal IRQs can be FIQs */ | 16 | /* all normal IRQs can be FIQs */ |
diff --git a/arch/arm/plat-mxc/include/mach/mx1.h b/arch/arm/plat-mxc/include/mach/mx1.h index 2b7c08d13e89..45bd31cc34d6 100644 --- a/arch/arm/plat-mxc/include/mach/mx1.h +++ b/arch/arm/plat-mxc/include/mach/mx1.h | |||
| @@ -78,61 +78,62 @@ | |||
| 78 | #define MX1_IO_ADDRESS(x) IOMEM(MX1_IO_P2V(x)) | 78 | #define MX1_IO_ADDRESS(x) IOMEM(MX1_IO_P2V(x)) |
| 79 | 79 | ||
| 80 | /* fixed interrput numbers */ | 80 | /* fixed interrput numbers */ |
| 81 | #define MX1_INT_SOFTINT 0 | 81 | #include <asm/irq.h> |
| 82 | #define MX1_INT_CSI 6 | 82 | #define MX1_INT_SOFTINT (NR_IRQS_LEGACY + 0) |
| 83 | #define MX1_DSPA_MAC_INT 7 | 83 | #define MX1_INT_CSI (NR_IRQS_LEGACY + 6) |
| 84 | #define MX1_DSPA_INT 8 | 84 | #define MX1_DSPA_MAC_INT (NR_IRQS_LEGACY + 7) |
| 85 | #define MX1_COMP_INT 9 | 85 | #define MX1_DSPA_INT (NR_IRQS_LEGACY + 8) |
| 86 | #define MX1_MSHC_XINT 10 | 86 | #define MX1_COMP_INT (NR_IRQS_LEGACY + 9) |
| 87 | #define MX1_GPIO_INT_PORTA 11 | 87 | #define MX1_MSHC_XINT (NR_IRQS_LEGACY + 10) |
| 88 | #define MX1_GPIO_INT_PORTB 12 | 88 | #define MX1_GPIO_INT_PORTA (NR_IRQS_LEGACY + 11) |
| 89 | #define MX1_GPIO_INT_PORTC 13 | 89 | #define MX1_GPIO_INT_PORTB (NR_IRQS_LEGACY + 12) |
| 90 | #define MX1_INT_LCDC 14 | 90 | #define MX1_GPIO_INT_PORTC (NR_IRQS_LEGACY + 13) |
| 91 | #define MX1_SIM_INT 15 | 91 | #define MX1_INT_LCDC (NR_IRQS_LEGACY + 14) |
| 92 | #define MX1_SIM_DATA_INT 16 | 92 | #define MX1_SIM_INT (NR_IRQS_LEGACY + 15) |
| 93 | #define MX1_RTC_INT 17 | 93 | #define MX1_SIM_DATA_INT (NR_IRQS_LEGACY + 16) |
| 94 | #define MX1_RTC_SAMINT 18 | 94 | #define MX1_RTC_INT (NR_IRQS_LEGACY + 17) |
| 95 | #define MX1_INT_UART2PFERR 19 | 95 | #define MX1_RTC_SAMINT (NR_IRQS_LEGACY + 18) |
| 96 | #define MX1_INT_UART2RTS 20 | 96 | #define MX1_INT_UART2PFERR (NR_IRQS_LEGACY + 19) |
| 97 | #define MX1_INT_UART2DTR 21 | 97 | #define MX1_INT_UART2RTS (NR_IRQS_LEGACY + 20) |
| 98 | #define MX1_INT_UART2UARTC 22 | 98 | #define MX1_INT_UART2DTR (NR_IRQS_LEGACY + 21) |
| 99 | #define MX1_INT_UART2TX 23 | 99 | #define MX1_INT_UART2UARTC (NR_IRQS_LEGACY + 22) |
| 100 | #define MX1_INT_UART2RX 24 | 100 | #define MX1_INT_UART2TX (NR_IRQS_LEGACY + 23) |
| 101 | #define MX1_INT_UART1PFERR 25 | 101 | #define MX1_INT_UART2RX (NR_IRQS_LEGACY + 24) |
| 102 | #define MX1_INT_UART1RTS 26 | 102 | #define MX1_INT_UART1PFERR (NR_IRQS_LEGACY + 25) |
| 103 | #define MX1_INT_UART1DTR 27 | 103 | #define MX1_INT_UART1RTS (NR_IRQS_LEGACY + 26) |
| 104 | #define MX1_INT_UART1UARTC 28 | 104 | #define MX1_INT_UART1DTR (NR_IRQS_LEGACY + 27) |
| 105 | #define MX1_INT_UART1TX 29 | 105 | #define MX1_INT_UART1UARTC (NR_IRQS_LEGACY + 28) |
| 106 | #define MX1_INT_UART1RX 30 | 106 | #define MX1_INT_UART1TX (NR_IRQS_LEGACY + 29) |
| 107 | #define MX1_VOICE_DAC_INT 31 | 107 | #define MX1_INT_UART1RX (NR_IRQS_LEGACY + 30) |
| 108 | #define MX1_VOICE_ADC_INT 32 | 108 | #define MX1_VOICE_DAC_INT (NR_IRQS_LEGACY + 31) |
| 109 | #define MX1_PEN_DATA_INT 33 | 109 | #define MX1_VOICE_ADC_INT (NR_IRQS_LEGACY + 32) |
| 110 | #define MX1_PWM_INT 34 | 110 | #define MX1_PEN_DATA_INT (NR_IRQS_LEGACY + 33) |
| 111 | #define MX1_SDHC_INT 35 | 111 | #define MX1_PWM_INT (NR_IRQS_LEGACY + 34) |
| 112 | #define MX1_INT_I2C 39 | 112 | #define MX1_SDHC_INT (NR_IRQS_LEGACY + 35) |
| 113 | #define MX1_INT_CSPI2 40 | 113 | #define MX1_INT_I2C (NR_IRQS_LEGACY + 39) |
| 114 | #define MX1_INT_CSPI1 41 | 114 | #define MX1_INT_CSPI2 (NR_IRQS_LEGACY + 40) |
| 115 | #define MX1_SSI_TX_INT 42 | 115 | #define MX1_INT_CSPI1 (NR_IRQS_LEGACY + 41) |
| 116 | #define MX1_SSI_TX_ERR_INT 43 | 116 | #define MX1_SSI_TX_INT (NR_IRQS_LEGACY + 42) |
| 117 | #define MX1_SSI_RX_INT 44 | 117 | #define MX1_SSI_TX_ERR_INT (NR_IRQS_LEGACY + 43) |
| 118 | #define MX1_SSI_RX_ERR_INT 45 | 118 | #define MX1_SSI_RX_INT (NR_IRQS_LEGACY + 44) |
| 119 | #define MX1_TOUCH_INT 46 | 119 | #define MX1_SSI_RX_ERR_INT (NR_IRQS_LEGACY + 45) |
| 120 | #define MX1_INT_USBD0 47 | 120 | #define MX1_TOUCH_INT (NR_IRQS_LEGACY + 46) |
| 121 | #define MX1_INT_USBD1 48 | 121 | #define MX1_INT_USBD0 (NR_IRQS_LEGACY + 47) |
| 122 | #define MX1_INT_USBD2 49 | 122 | #define MX1_INT_USBD1 (NR_IRQS_LEGACY + 48) |
| 123 | #define MX1_INT_USBD3 50 | 123 | #define MX1_INT_USBD2 (NR_IRQS_LEGACY + 49) |
| 124 | #define MX1_INT_USBD4 51 | 124 | #define MX1_INT_USBD3 (NR_IRQS_LEGACY + 50) |
| 125 | #define MX1_INT_USBD5 52 | 125 | #define MX1_INT_USBD4 (NR_IRQS_LEGACY + 51) |
| 126 | #define MX1_INT_USBD6 53 | 126 | #define MX1_INT_USBD5 (NR_IRQS_LEGACY + 52) |
| 127 | #define MX1_BTSYS_INT 55 | 127 | #define MX1_INT_USBD6 (NR_IRQS_LEGACY + 53) |
| 128 | #define MX1_BTTIM_INT 56 | 128 | #define MX1_BTSYS_INT (NR_IRQS_LEGACY + 55) |
| 129 | #define MX1_BTWUI_INT 57 | 129 | #define MX1_BTTIM_INT (NR_IRQS_LEGACY + 56) |
| 130 | #define MX1_TIM2_INT 58 | 130 | #define MX1_BTWUI_INT (NR_IRQS_LEGACY + 57) |
| 131 | #define MX1_TIM1_INT 59 | 131 | #define MX1_TIM2_INT (NR_IRQS_LEGACY + 58) |
| 132 | #define MX1_DMA_ERR 60 | 132 | #define MX1_TIM1_INT (NR_IRQS_LEGACY + 59) |
| 133 | #define MX1_DMA_INT 61 | 133 | #define MX1_DMA_ERR (NR_IRQS_LEGACY + 60) |
| 134 | #define MX1_GPIO_INT_PORTD 62 | 134 | #define MX1_DMA_INT (NR_IRQS_LEGACY + 61) |
| 135 | #define MX1_WDT_INT 63 | 135 | #define MX1_GPIO_INT_PORTD (NR_IRQS_LEGACY + 62) |
| 136 | #define MX1_WDT_INT (NR_IRQS_LEGACY + 63) | ||
| 136 | 137 | ||
| 137 | /* DMA */ | 138 | /* DMA */ |
| 138 | #define MX1_DMA_REQ_UART3_T 2 | 139 | #define MX1_DMA_REQ_UART3_T 2 |
diff --git a/arch/arm/plat-mxc/include/mach/mx21.h b/arch/arm/plat-mxc/include/mach/mx21.h index 6cd049ebbd8d..468738aa997f 100644 --- a/arch/arm/plat-mxc/include/mach/mx21.h +++ b/arch/arm/plat-mxc/include/mach/mx21.h | |||
| @@ -99,59 +99,60 @@ | |||
| 99 | #define MX21_IO_ADDRESS(x) IOMEM(MX21_IO_P2V(x)) | 99 | #define MX21_IO_ADDRESS(x) IOMEM(MX21_IO_P2V(x)) |
| 100 | 100 | ||
| 101 | /* fixed interrupt numbers */ | 101 | /* fixed interrupt numbers */ |
| 102 | #define MX21_INT_CSPI3 6 | 102 | #include <asm/irq.h> |
| 103 | #define MX21_INT_GPIO 8 | 103 | #define MX21_INT_CSPI3 (NR_IRQS_LEGACY + 6) |
| 104 | #define MX21_INT_FIRI 9 | 104 | #define MX21_INT_GPIO (NR_IRQS_LEGACY + 8) |
| 105 | #define MX21_INT_SDHC2 10 | 105 | #define MX21_INT_FIRI (NR_IRQS_LEGACY + 9) |
| 106 | #define MX21_INT_SDHC1 11 | 106 | #define MX21_INT_SDHC2 (NR_IRQS_LEGACY + 10) |
| 107 | #define MX21_INT_I2C 12 | 107 | #define MX21_INT_SDHC1 (NR_IRQS_LEGACY + 11) |
| 108 | #define MX21_INT_SSI2 13 | 108 | #define MX21_INT_I2C (NR_IRQS_LEGACY + 12) |
| 109 | #define MX21_INT_SSI1 14 | 109 | #define MX21_INT_SSI2 (NR_IRQS_LEGACY + 13) |
| 110 | #define MX21_INT_CSPI2 15 | 110 | #define MX21_INT_SSI1 (NR_IRQS_LEGACY + 14) |
| 111 | #define MX21_INT_CSPI1 16 | 111 | #define MX21_INT_CSPI2 (NR_IRQS_LEGACY + 15) |
| 112 | #define MX21_INT_UART4 17 | 112 | #define MX21_INT_CSPI1 (NR_IRQS_LEGACY + 16) |
| 113 | #define MX21_INT_UART3 18 | 113 | #define MX21_INT_UART4 (NR_IRQS_LEGACY + 17) |
| 114 | #define MX21_INT_UART2 19 | 114 | #define MX21_INT_UART3 (NR_IRQS_LEGACY + 18) |
| 115 | #define MX21_INT_UART1 20 | 115 | #define MX21_INT_UART2 (NR_IRQS_LEGACY + 19) |
| 116 | #define MX21_INT_KPP 21 | 116 | #define MX21_INT_UART1 (NR_IRQS_LEGACY + 20) |
| 117 | #define MX21_INT_RTC 22 | 117 | #define MX21_INT_KPP (NR_IRQS_LEGACY + 21) |
| 118 | #define MX21_INT_PWM 23 | 118 | #define MX21_INT_RTC (NR_IRQS_LEGACY + 22) |
| 119 | #define MX21_INT_GPT3 24 | 119 | #define MX21_INT_PWM (NR_IRQS_LEGACY + 23) |
| 120 | #define MX21_INT_GPT2 25 | 120 | #define MX21_INT_GPT3 (NR_IRQS_LEGACY + 24) |
| 121 | #define MX21_INT_GPT1 26 | 121 | #define MX21_INT_GPT2 (NR_IRQS_LEGACY + 25) |
| 122 | #define MX21_INT_WDOG 27 | 122 | #define MX21_INT_GPT1 (NR_IRQS_LEGACY + 26) |
| 123 | #define MX21_INT_PCMCIA 28 | 123 | #define MX21_INT_WDOG (NR_IRQS_LEGACY + 27) |
| 124 | #define MX21_INT_NFC 29 | 124 | #define MX21_INT_PCMCIA (NR_IRQS_LEGACY + 28) |
| 125 | #define MX21_INT_BMI 30 | 125 | #define MX21_INT_NFC (NR_IRQS_LEGACY + 29) |
| 126 | #define MX21_INT_CSI 31 | 126 | #define MX21_INT_BMI (NR_IRQS_LEGACY + 30) |
| 127 | #define MX21_INT_DMACH0 32 | 127 | #define MX21_INT_CSI (NR_IRQS_LEGACY + 31) |
| 128 | #define MX21_INT_DMACH1 33 | 128 | #define MX21_INT_DMACH0 (NR_IRQS_LEGACY + 32) |
| 129 | #define MX21_INT_DMACH2 34 | 129 | #define MX21_INT_DMACH1 (NR_IRQS_LEGACY + 33) |
| 130 | #define MX21_INT_DMACH3 35 | 130 | #define MX21_INT_DMACH2 (NR_IRQS_LEGACY + 34) |
| 131 | #define MX21_INT_DMACH4 36 | 131 | #define MX21_INT_DMACH3 (NR_IRQS_LEGACY + 35) |
| 132 | #define MX21_INT_DMACH5 37 | 132 | #define MX21_INT_DMACH4 (NR_IRQS_LEGACY + 36) |
| 133 | #define MX21_INT_DMACH6 38 | 133 | #define MX21_INT_DMACH5 (NR_IRQS_LEGACY + 37) |
| 134 | #define MX21_INT_DMACH7 39 | 134 | #define MX21_INT_DMACH6 (NR_IRQS_LEGACY + 38) |
| 135 | #define MX21_INT_DMACH8 40 | 135 | #define MX21_INT_DMACH7 (NR_IRQS_LEGACY + 39) |
| 136 | #define MX21_INT_DMACH9 41 | 136 | #define MX21_INT_DMACH8 (NR_IRQS_LEGACY + 40) |
| 137 | #define MX21_INT_DMACH10 42 | 137 | #define MX21_INT_DMACH9 (NR_IRQS_LEGACY + 41) |
| 138 | #define MX21_INT_DMACH11 43 | 138 | #define MX21_INT_DMACH10 (NR_IRQS_LEGACY + 42) |
| 139 | #define MX21_INT_DMACH12 44 | 139 | #define MX21_INT_DMACH11 (NR_IRQS_LEGACY + 43) |
| 140 | #define MX21_INT_DMACH13 45 | 140 | #define MX21_INT_DMACH12 (NR_IRQS_LEGACY + 44) |
| 141 | #define MX21_INT_DMACH14 46 | 141 | #define MX21_INT_DMACH13 (NR_IRQS_LEGACY + 45) |
| 142 | #define MX21_INT_DMACH15 47 | 142 | #define MX21_INT_DMACH14 (NR_IRQS_LEGACY + 46) |
| 143 | #define MX21_INT_EMMAENC 49 | 143 | #define MX21_INT_DMACH15 (NR_IRQS_LEGACY + 47) |
| 144 | #define MX21_INT_EMMADEC 50 | 144 | #define MX21_INT_EMMAENC (NR_IRQS_LEGACY + 49) |
| 145 | #define MX21_INT_EMMAPRP 51 | 145 | #define MX21_INT_EMMADEC (NR_IRQS_LEGACY + 50) |
| 146 | #define MX21_INT_EMMAPP 52 | 146 | #define MX21_INT_EMMAPRP (NR_IRQS_LEGACY + 51) |
| 147 | #define MX21_INT_USBWKUP 53 | 147 | #define MX21_INT_EMMAPP (NR_IRQS_LEGACY + 52) |
| 148 | #define MX21_INT_USBDMA 54 | 148 | #define MX21_INT_USBWKUP (NR_IRQS_LEGACY + 53) |
| 149 | #define MX21_INT_USBHOST 55 | 149 | #define MX21_INT_USBDMA (NR_IRQS_LEGACY + 54) |
| 150 | #define MX21_INT_USBFUNC 56 | 150 | #define MX21_INT_USBHOST (NR_IRQS_LEGACY + 55) |
| 151 | #define MX21_INT_USBMNP 57 | 151 | #define MX21_INT_USBFUNC (NR_IRQS_LEGACY + 56) |
| 152 | #define MX21_INT_USBCTRL 58 | 152 | #define MX21_INT_USBMNP (NR_IRQS_LEGACY + 57) |
| 153 | #define MX21_INT_SLCDC 60 | 153 | #define MX21_INT_USBCTRL (NR_IRQS_LEGACY + 58) |
| 154 | #define MX21_INT_LCDC 61 | 154 | #define MX21_INT_SLCDC (NR_IRQS_LEGACY + 60) |
| 155 | #define MX21_INT_LCDC (NR_IRQS_LEGACY + 61) | ||
| 155 | 156 | ||
| 156 | /* fixed DMA request numbers */ | 157 | /* fixed DMA request numbers */ |
| 157 | #define MX21_DMA_REQ_CSPI3_RX 1 | 158 | #define MX21_DMA_REQ_CSPI3_RX 1 |
diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h index ccebf5ba12f0..627d94f1b010 100644 --- a/arch/arm/plat-mxc/include/mach/mx25.h +++ b/arch/arm/plat-mxc/include/mach/mx25.h | |||
| @@ -61,40 +61,44 @@ | |||
| 61 | #define MX25_IO_P2V(x) IMX_IO_P2V(x) | 61 | #define MX25_IO_P2V(x) IMX_IO_P2V(x) |
| 62 | #define MX25_IO_ADDRESS(x) IOMEM(MX25_IO_P2V(x)) | 62 | #define MX25_IO_ADDRESS(x) IOMEM(MX25_IO_P2V(x)) |
| 63 | 63 | ||
| 64 | #define MX25_INT_CSPI3 0 | 64 | /* |
| 65 | #define MX25_INT_I2C1 3 | 65 | * Interrupt numbers |
| 66 | #define MX25_INT_I2C2 4 | 66 | */ |
| 67 | #define MX25_INT_UART4 5 | 67 | #include <asm/irq.h> |
| 68 | #define MX25_INT_ESDHC2 8 | 68 | #define MX25_INT_CSPI3 (NR_IRQS_LEGACY + 0) |
| 69 | #define MX25_INT_ESDHC1 9 | 69 | #define MX25_INT_I2C1 (NR_IRQS_LEGACY + 3) |
| 70 | #define MX25_INT_I2C3 10 | 70 | #define MX25_INT_I2C2 (NR_IRQS_LEGACY + 4) |
| 71 | #define MX25_INT_SSI2 11 | 71 | #define MX25_INT_UART4 (NR_IRQS_LEGACY + 5) |
| 72 | #define MX25_INT_SSI1 12 | 72 | #define MX25_INT_ESDHC2 (NR_IRQS_LEGACY + 8) |
| 73 | #define MX25_INT_CSPI2 13 | 73 | #define MX25_INT_ESDHC1 (NR_IRQS_LEGACY + 9) |
| 74 | #define MX25_INT_CSPI1 14 | 74 | #define MX25_INT_I2C3 (NR_IRQS_LEGACY + 10) |
| 75 | #define MX25_INT_GPIO3 16 | 75 | #define MX25_INT_SSI2 (NR_IRQS_LEGACY + 11) |
| 76 | #define MX25_INT_CSI 17 | 76 | #define MX25_INT_SSI1 (NR_IRQS_LEGACY + 12) |
| 77 | #define MX25_INT_UART3 18 | 77 | #define MX25_INT_CSPI2 (NR_IRQS_LEGACY + 13) |
| 78 | #define MX25_INT_GPIO4 23 | 78 | #define MX25_INT_CSPI1 (NR_IRQS_LEGACY + 14) |
| 79 | #define MX25_INT_KPP 24 | 79 | #define MX25_INT_GPIO3 (NR_IRQS_LEGACY + 16) |
| 80 | #define MX25_INT_DRYICE 25 | 80 | #define MX25_INT_CSI (NR_IRQS_LEGACY + 17) |
| 81 | #define MX25_INT_PWM1 26 | 81 | #define MX25_INT_UART3 (NR_IRQS_LEGACY + 18) |
| 82 | #define MX25_INT_UART2 32 | 82 | #define MX25_INT_GPIO4 (NR_IRQS_LEGACY + 23) |
| 83 | #define MX25_INT_NFC 33 | 83 | #define MX25_INT_KPP (NR_IRQS_LEGACY + 24) |
| 84 | #define MX25_INT_SDMA 34 | 84 | #define MX25_INT_DRYICE (NR_IRQS_LEGACY + 25) |
| 85 | #define MX25_INT_USB_HS 35 | 85 | #define MX25_INT_PWM1 (NR_IRQS_LEGACY + 26) |
| 86 | #define MX25_INT_PWM2 36 | 86 | #define MX25_INT_UART2 (NR_IRQS_LEGACY + 32) |
| 87 | #define MX25_INT_USB_OTG 37 | 87 | #define MX25_INT_NFC (NR_IRQS_LEGACY + 33) |
| 88 | #define MX25_INT_LCDC 39 | 88 | #define MX25_INT_SDMA (NR_IRQS_LEGACY + 34) |
| 89 | #define MX25_INT_UART5 40 | 89 | #define MX25_INT_USB_HS (NR_IRQS_LEGACY + 35) |
| 90 | #define MX25_INT_PWM3 41 | 90 | #define MX25_INT_PWM2 (NR_IRQS_LEGACY + 36) |
| 91 | #define MX25_INT_PWM4 42 | 91 | #define MX25_INT_USB_OTG (NR_IRQS_LEGACY + 37) |
| 92 | #define MX25_INT_CAN1 43 | 92 | #define MX25_INT_LCDC (NR_IRQS_LEGACY + 39) |
| 93 | #define MX25_INT_CAN2 44 | 93 | #define MX25_INT_UART5 (NR_IRQS_LEGACY + 40) |
| 94 | #define MX25_INT_UART1 45 | 94 | #define MX25_INT_PWM3 (NR_IRQS_LEGACY + 41) |
| 95 | #define MX25_INT_GPIO2 51 | 95 | #define MX25_INT_PWM4 (NR_IRQS_LEGACY + 42) |
| 96 | #define MX25_INT_GPIO1 52 | 96 | #define MX25_INT_CAN1 (NR_IRQS_LEGACY + 43) |
| 97 | #define MX25_INT_FEC 57 | 97 | #define MX25_INT_CAN2 (NR_IRQS_LEGACY + 44) |
| 98 | #define MX25_INT_UART1 (NR_IRQS_LEGACY + 45) | ||
| 99 | #define MX25_INT_GPIO2 (NR_IRQS_LEGACY + 51) | ||
| 100 | #define MX25_INT_GPIO1 (NR_IRQS_LEGACY + 52) | ||
| 101 | #define MX25_INT_FEC (NR_IRQS_LEGACY + 57) | ||
| 98 | 102 | ||
| 99 | #define MX25_DMA_REQ_SSI2_RX1 22 | 103 | #define MX25_DMA_REQ_SSI2_RX1 22 |
| 100 | #define MX25_DMA_REQ_SSI2_TX1 23 | 104 | #define MX25_DMA_REQ_SSI2_TX1 23 |
diff --git a/arch/arm/plat-mxc/include/mach/mx27.h b/arch/arm/plat-mxc/include/mach/mx27.h index 6265357284d7..e074616d54ca 100644 --- a/arch/arm/plat-mxc/include/mach/mx27.h +++ b/arch/arm/plat-mxc/include/mach/mx27.h | |||
| @@ -128,69 +128,70 @@ | |||
| 128 | #define MX27_IO_ADDRESS(x) IOMEM(MX27_IO_P2V(x)) | 128 | #define MX27_IO_ADDRESS(x) IOMEM(MX27_IO_P2V(x)) |
| 129 | 129 | ||
| 130 | /* fixed interrupt numbers */ | 130 | /* fixed interrupt numbers */ |
| 131 | #define MX27_INT_I2C2 1 | 131 | #include <asm/irq.h> |
| 132 | #define MX27_INT_GPT6 2 | 132 | #define MX27_INT_I2C2 (NR_IRQS_LEGACY + 1) |
| 133 | #define MX27_INT_GPT5 3 | 133 | #define MX27_INT_GPT6 (NR_IRQS_LEGACY + 2) |
| 134 | #define MX27_INT_GPT4 4 | 134 | #define MX27_INT_GPT5 (NR_IRQS_LEGACY + 3) |
| 135 | #define MX27_INT_RTIC 5 | 135 | #define MX27_INT_GPT4 (NR_IRQS_LEGACY + 4) |
| 136 | #define MX27_INT_CSPI3 6 | 136 | #define MX27_INT_RTIC (NR_IRQS_LEGACY + 5) |
| 137 | #define MX27_INT_SDHC 7 | 137 | #define MX27_INT_CSPI3 (NR_IRQS_LEGACY + 6) |
| 138 | #define MX27_INT_GPIO 8 | 138 | #define MX27_INT_SDHC (NR_IRQS_LEGACY + 7) |
| 139 | #define MX27_INT_SDHC3 9 | 139 | #define MX27_INT_GPIO (NR_IRQS_LEGACY + 8) |
| 140 | #define MX27_INT_SDHC2 10 | 140 | #define MX27_INT_SDHC3 (NR_IRQS_LEGACY + 9) |
| 141 | #define MX27_INT_SDHC1 11 | 141 | #define MX27_INT_SDHC2 (NR_IRQS_LEGACY + 10) |
| 142 | #define MX27_INT_I2C1 12 | 142 | #define MX27_INT_SDHC1 (NR_IRQS_LEGACY + 11) |
| 143 | #define MX27_INT_SSI2 13 | 143 | #define MX27_INT_I2C1 (NR_IRQS_LEGACY + 12) |
| 144 | #define MX27_INT_SSI1 14 | 144 | #define MX27_INT_SSI2 (NR_IRQS_LEGACY + 13) |
| 145 | #define MX27_INT_CSPI2 15 | 145 | #define MX27_INT_SSI1 (NR_IRQS_LEGACY + 14) |
| 146 | #define MX27_INT_CSPI1 16 | 146 | #define MX27_INT_CSPI2 (NR_IRQS_LEGACY + 15) |
| 147 | #define MX27_INT_UART4 17 | 147 | #define MX27_INT_CSPI1 (NR_IRQS_LEGACY + 16) |
| 148 | #define MX27_INT_UART3 18 | 148 | #define MX27_INT_UART4 (NR_IRQS_LEGACY + 17) |
| 149 | #define MX27_INT_UART2 19 | 149 | #define MX27_INT_UART3 (NR_IRQS_LEGACY + 18) |
| 150 | #define MX27_INT_UART1 20 | 150 | #define MX27_INT_UART2 (NR_IRQS_LEGACY + 19) |
| 151 | #define MX27_INT_KPP 21 | 151 | #define MX27_INT_UART1 (NR_IRQS_LEGACY + 20) |
| 152 | #define MX27_INT_RTC 22 | 152 | #define MX27_INT_KPP (NR_IRQS_LEGACY + 21) |
| 153 | #define MX27_INT_PWM 23 | 153 | #define MX27_INT_RTC (NR_IRQS_LEGACY + 22) |
| 154 | #define MX27_INT_GPT3 24 | 154 | #define MX27_INT_PWM (NR_IRQS_LEGACY + 23) |
| 155 | #define MX27_INT_GPT2 25 | 155 | #define MX27_INT_GPT3 (NR_IRQS_LEGACY + 24) |
| 156 | #define MX27_INT_GPT1 26 | 156 | #define MX27_INT_GPT2 (NR_IRQS_LEGACY + 25) |
| 157 | #define MX27_INT_WDOG 27 | 157 | #define MX27_INT_GPT1 (NR_IRQS_LEGACY + 26) |
| 158 | #define MX27_INT_PCMCIA 28 | 158 | #define MX27_INT_WDOG (NR_IRQS_LEGACY + 27) |
| 159 | #define MX27_INT_NFC 29 | 159 | #define MX27_INT_PCMCIA (NR_IRQS_LEGACY + 28) |
| 160 | #define MX27_INT_ATA 30 | 160 | #define MX27_INT_NFC (NR_IRQS_LEGACY + 29) |
| 161 | #define MX27_INT_CSI 31 | 161 | #define MX27_INT_ATA (NR_IRQS_LEGACY + 30) |
| 162 | #define MX27_INT_DMACH0 32 | 162 | #define MX27_INT_CSI (NR_IRQS_LEGACY + 31) |
| 163 | #define MX27_INT_DMACH1 33 | 163 | #define MX27_INT_DMACH0 (NR_IRQS_LEGACY + 32) |
| 164 | #define MX27_INT_DMACH2 34 | 164 | #define MX27_INT_DMACH1 (NR_IRQS_LEGACY + 33) |
| 165 | #define MX27_INT_DMACH3 35 | 165 | #define MX27_INT_DMACH2 (NR_IRQS_LEGACY + 34) |
| 166 | #define MX27_INT_DMACH4 36 | 166 | #define MX27_INT_DMACH3 (NR_IRQS_LEGACY + 35) |
| 167 | #define MX27_INT_DMACH5 37 | 167 | #define MX27_INT_DMACH4 (NR_IRQS_LEGACY + 36) |
| 168 | #define MX27_INT_DMACH6 38 | 168 | #define MX27_INT_DMACH5 (NR_IRQS_LEGACY + 37) |
| 169 | #define MX27_INT_DMACH7 39 | 169 | #define MX27_INT_DMACH6 (NR_IRQS_LEGACY + 38) |
| 170 | #define MX27_INT_DMACH8 40 | 170 | #define MX27_INT_DMACH7 (NR_IRQS_LEGACY + 39) |
| 171 | #define MX27_INT_DMACH9 41 | 171 | #define MX27_INT_DMACH8 (NR_IRQS_LEGACY + 40) |
| 172 | #define MX27_INT_DMACH10 42 | 172 | #define MX27_INT_DMACH9 (NR_IRQS_LEGACY + 41) |
| 173 | #define MX27_INT_DMACH11 43 | 173 | #define MX27_INT_DMACH10 (NR_IRQS_LEGACY + 42) |
| 174 | #define MX27_INT_DMACH12 44 | 174 | #define MX27_INT_DMACH11 (NR_IRQS_LEGACY + 43) |
| 175 | #define MX27_INT_DMACH13 45 | 175 | #define MX27_INT_DMACH12 (NR_IRQS_LEGACY + 44) |
| 176 | #define MX27_INT_DMACH14 46 | 176 | #define MX27_INT_DMACH13 (NR_IRQS_LEGACY + 45) |
| 177 | #define MX27_INT_DMACH15 47 | 177 | #define MX27_INT_DMACH14 (NR_IRQS_LEGACY + 46) |
| 178 | #define MX27_INT_UART6 48 | 178 | #define MX27_INT_DMACH15 (NR_IRQS_LEGACY + 47) |
| 179 | #define MX27_INT_UART5 49 | 179 | #define MX27_INT_UART6 (NR_IRQS_LEGACY + 48) |
| 180 | #define MX27_INT_FEC 50 | 180 | #define MX27_INT_UART5 (NR_IRQS_LEGACY + 49) |
| 181 | #define MX27_INT_EMMAPRP 51 | 181 | #define MX27_INT_FEC (NR_IRQS_LEGACY + 50) |
| 182 | #define MX27_INT_EMMAPP 52 | 182 | #define MX27_INT_EMMAPRP (NR_IRQS_LEGACY + 51) |
| 183 | #define MX27_INT_VPU 53 | 183 | #define MX27_INT_EMMAPP (NR_IRQS_LEGACY + 52) |
| 184 | #define MX27_INT_USB_HS1 54 | 184 | #define MX27_INT_VPU (NR_IRQS_LEGACY + 53) |
| 185 | #define MX27_INT_USB_HS2 55 | 185 | #define MX27_INT_USB_HS1 (NR_IRQS_LEGACY + 54) |
| 186 | #define MX27_INT_USB_OTG 56 | 186 | #define MX27_INT_USB_HS2 (NR_IRQS_LEGACY + 55) |
| 187 | #define MX27_INT_SCC_SMN 57 | 187 | #define MX27_INT_USB_OTG (NR_IRQS_LEGACY + 56) |
| 188 | #define MX27_INT_SCC_SCM 58 | 188 | #define MX27_INT_SCC_SMN (NR_IRQS_LEGACY + 57) |
| 189 | #define MX27_INT_SAHARA 59 | 189 | #define MX27_INT_SCC_SCM (NR_IRQS_LEGACY + 58) |
| 190 | #define MX27_INT_SLCDC 60 | 190 | #define MX27_INT_SAHARA (NR_IRQS_LEGACY + 59) |
| 191 | #define MX27_INT_LCDC 61 | 191 | #define MX27_INT_SLCDC (NR_IRQS_LEGACY + 60) |
| 192 | #define MX27_INT_IIM 62 | 192 | #define MX27_INT_LCDC (NR_IRQS_LEGACY + 61) |
| 193 | #define MX27_INT_CCM 63 | 193 | #define MX27_INT_IIM (NR_IRQS_LEGACY + 62) |
| 194 | #define MX27_INT_CCM (NR_IRQS_LEGACY + 63) | ||
| 194 | 195 | ||
| 195 | /* fixed DMA request numbers */ | 196 | /* fixed DMA request numbers */ |
| 196 | #define MX27_DMA_REQ_CSPI3_RX 1 | 197 | #define MX27_DMA_REQ_CSPI3_RX 1 |
diff --git a/arch/arm/plat-mxc/include/mach/mx2x.h b/arch/arm/plat-mxc/include/mach/mx2x.h index 6d07839fdec2..11642f5b224c 100644 --- a/arch/arm/plat-mxc/include/mach/mx2x.h +++ b/arch/arm/plat-mxc/include/mach/mx2x.h | |||
| @@ -68,49 +68,50 @@ | |||
| 68 | #define MX2x_CSI_BASE_ADDR (MX2x_SAHB1_BASE_ADDR + 0x0000) | 68 | #define MX2x_CSI_BASE_ADDR (MX2x_SAHB1_BASE_ADDR + 0x0000) |
| 69 | 69 | ||
| 70 | /* fixed interrupt numbers */ | 70 | /* fixed interrupt numbers */ |
| 71 | #define MX2x_INT_CSPI3 6 | 71 | #include <asm/irq.h> |
| 72 | #define MX2x_INT_GPIO 8 | 72 | #define MX2x_INT_CSPI3 (NR_IRQS_LEGACY + 6) |
| 73 | #define MX2x_INT_SDHC2 10 | 73 | #define MX2x_INT_GPIO (NR_IRQS_LEGACY + 8) |
| 74 | #define MX2x_INT_SDHC1 11 | 74 | #define MX2x_INT_SDHC2 (NR_IRQS_LEGACY + 10) |
| 75 | #define MX2x_INT_I2C 12 | 75 | #define MX2x_INT_SDHC1 (NR_IRQS_LEGACY + 11) |
| 76 | #define MX2x_INT_SSI2 13 | 76 | #define MX2x_INT_I2C (NR_IRQS_LEGACY + 12) |
| 77 | #define MX2x_INT_SSI1 14 | 77 | #define MX2x_INT_SSI2 (NR_IRQS_LEGACY + 13) |
| 78 | #define MX2x_INT_CSPI2 15 | 78 | #define MX2x_INT_SSI1 (NR_IRQS_LEGACY + 14) |
| 79 | #define MX2x_INT_CSPI1 16 | 79 | #define MX2x_INT_CSPI2 (NR_IRQS_LEGACY + 15) |
| 80 | #define MX2x_INT_UART4 17 | 80 | #define MX2x_INT_CSPI1 (NR_IRQS_LEGACY + 16) |
| 81 | #define MX2x_INT_UART3 18 | 81 | #define MX2x_INT_UART4 (NR_IRQS_LEGACY + 17) |
| 82 | #define MX2x_INT_UART2 19 | 82 | #define MX2x_INT_UART3 (NR_IRQS_LEGACY + 18) |
| 83 | #define MX2x_INT_UART1 20 | 83 | #define MX2x_INT_UART2 (NR_IRQS_LEGACY + 19) |
| 84 | #define MX2x_INT_KPP 21 | 84 | #define MX2x_INT_UART1 (NR_IRQS_LEGACY + 20) |
| 85 | #define MX2x_INT_RTC 22 | 85 | #define MX2x_INT_KPP (NR_IRQS_LEGACY + 21) |
| 86 | #define MX2x_INT_PWM 23 | 86 | #define MX2x_INT_RTC (NR_IRQS_LEGACY + 22) |
| 87 | #define MX2x_INT_GPT3 24 | 87 | #define MX2x_INT_PWM (NR_IRQS_LEGACY + 23) |
| 88 | #define MX2x_INT_GPT2 25 | 88 | #define MX2x_INT_GPT3 (NR_IRQS_LEGACY + 24) |
| 89 | #define MX2x_INT_GPT1 26 | 89 | #define MX2x_INT_GPT2 (NR_IRQS_LEGACY + 25) |
| 90 | #define MX2x_INT_WDOG 27 | 90 | #define MX2x_INT_GPT1 (NR_IRQS_LEGACY + 26) |
| 91 | #define MX2x_INT_PCMCIA 28 | 91 | #define MX2x_INT_WDOG (NR_IRQS_LEGACY + 27) |
| 92 | #define MX2x_INT_NANDFC 29 | 92 | #define MX2x_INT_PCMCIA (NR_IRQS_LEGACY + 28) |
| 93 | #define MX2x_INT_CSI 31 | 93 | #define MX2x_INT_NANDFC (NR_IRQS_LEGACY + 29) |
| 94 | #define MX2x_INT_DMACH0 32 | 94 | #define MX2x_INT_CSI (NR_IRQS_LEGACY + 31) |
| 95 | #define MX2x_INT_DMACH1 33 | 95 | #define MX2x_INT_DMACH0 (NR_IRQS_LEGACY + 32) |
| 96 | #define MX2x_INT_DMACH2 34 | 96 | #define MX2x_INT_DMACH1 (NR_IRQS_LEGACY + 33) |
| 97 | #define MX2x_INT_DMACH3 35 | 97 | #define MX2x_INT_DMACH2 (NR_IRQS_LEGACY + 34) |
| 98 | #define MX2x_INT_DMACH4 36 | 98 | #define MX2x_INT_DMACH3 (NR_IRQS_LEGACY + 35) |
| 99 | #define MX2x_INT_DMACH5 37 | 99 | #define MX2x_INT_DMACH4 (NR_IRQS_LEGACY + 36) |
| 100 | #define MX2x_INT_DMACH6 38 | 100 | #define MX2x_INT_DMACH5 (NR_IRQS_LEGACY + 37) |
| 101 | #define MX2x_INT_DMACH7 39 | 101 | #define MX2x_INT_DMACH6 (NR_IRQS_LEGACY + 38) |
| 102 | #define MX2x_INT_DMACH8 40 | 102 | #define MX2x_INT_DMACH7 (NR_IRQS_LEGACY + 39) |
| 103 | #define MX2x_INT_DMACH9 41 | 103 | #define MX2x_INT_DMACH8 (NR_IRQS_LEGACY + 40) |
| 104 | #define MX2x_INT_DMACH10 42 | 104 | #define MX2x_INT_DMACH9 (NR_IRQS_LEGACY + 41) |
| 105 | #define MX2x_INT_DMACH11 43 | 105 | #define MX2x_INT_DMACH10 (NR_IRQS_LEGACY + 42) |
| 106 | #define MX2x_INT_DMACH12 44 | 106 | #define MX2x_INT_DMACH11 (NR_IRQS_LEGACY + 43) |
| 107 | #define MX2x_INT_DMACH13 45 | 107 | #define MX2x_INT_DMACH12 (NR_IRQS_LEGACY + 44) |
| 108 | #define MX2x_INT_DMACH14 46 | 108 | #define MX2x_INT_DMACH13 (NR_IRQS_LEGACY + 45) |
| 109 | #define MX2x_INT_DMACH15 47 | 109 | #define MX2x_INT_DMACH14 (NR_IRQS_LEGACY + 46) |
| 110 | #define MX2x_INT_EMMAPRP 51 | 110 | #define MX2x_INT_DMACH15 (NR_IRQS_LEGACY + 47) |
| 111 | #define MX2x_INT_EMMAPP 52 | 111 | #define MX2x_INT_EMMAPRP (NR_IRQS_LEGACY + 51) |
| 112 | #define MX2x_INT_SLCDC 60 | 112 | #define MX2x_INT_EMMAPP (NR_IRQS_LEGACY + 52) |
| 113 | #define MX2x_INT_LCDC 61 | 113 | #define MX2x_INT_SLCDC (NR_IRQS_LEGACY + 60) |
| 114 | #define MX2x_INT_LCDC (NR_IRQS_LEGACY + 61) | ||
| 114 | 115 | ||
| 115 | /* fixed DMA request numbers */ | 116 | /* fixed DMA request numbers */ |
| 116 | #define MX2x_DMA_REQ_CSPI3_RX 1 | 117 | #define MX2x_DMA_REQ_CSPI3_RX 1 |
diff --git a/arch/arm/plat-mxc/include/mach/mx31.h b/arch/arm/plat-mxc/include/mach/mx31.h index e27619e442c0..dbced61d9fda 100644 --- a/arch/arm/plat-mxc/include/mach/mx31.h +++ b/arch/arm/plat-mxc/include/mach/mx31.h | |||
| @@ -118,63 +118,67 @@ | |||
| 118 | #define MX31_IO_P2V(x) IMX_IO_P2V(x) | 118 | #define MX31_IO_P2V(x) IMX_IO_P2V(x) |
| 119 | #define MX31_IO_ADDRESS(x) IOMEM(MX31_IO_P2V(x)) | 119 | #define MX31_IO_ADDRESS(x) IOMEM(MX31_IO_P2V(x)) |
| 120 | 120 | ||
| 121 | #define MX31_INT_I2C3 3 | 121 | /* |
| 122 | #define MX31_INT_I2C2 4 | 122 | * Interrupt numbers |
| 123 | #define MX31_INT_MPEG4_ENCODER 5 | 123 | */ |
| 124 | #define MX31_INT_RTIC 6 | 124 | #include <asm/irq.h> |
| 125 | #define MX31_INT_FIRI 7 | 125 | #define MX31_INT_I2C3 (NR_IRQS_LEGACY + 3) |
| 126 | #define MX31_INT_SDHC2 8 | 126 | #define MX31_INT_I2C2 (NR_IRQS_LEGACY + 4) |
| 127 | #define MX31_INT_SDHC1 9 | 127 | #define MX31_INT_MPEG4_ENCODER (NR_IRQS_LEGACY + 5) |
| 128 | #define MX31_INT_I2C1 10 | 128 | #define MX31_INT_RTIC (NR_IRQS_LEGACY + 6) |
| 129 | #define MX31_INT_SSI2 11 | 129 | #define MX31_INT_FIRI (NR_IRQS_LEGACY + 7) |
| 130 | #define MX31_INT_SSI1 12 | 130 | #define MX31_INT_SDHC2 (NR_IRQS_LEGACY + 8) |
| 131 | #define MX31_INT_CSPI2 13 | 131 | #define MX31_INT_SDHC1 (NR_IRQS_LEGACY + 9) |
| 132 | #define MX31_INT_CSPI1 14 | 132 | #define MX31_INT_I2C1 (NR_IRQS_LEGACY + 10) |
| 133 | #define MX31_INT_ATA 15 | 133 | #define MX31_INT_SSI2 (NR_IRQS_LEGACY + 11) |
| 134 | #define MX31_INT_MBX 16 | 134 | #define MX31_INT_SSI1 (NR_IRQS_LEGACY + 12) |
| 135 | #define MX31_INT_CSPI3 17 | 135 | #define MX31_INT_CSPI2 (NR_IRQS_LEGACY + 13) |
| 136 | #define MX31_INT_UART3 18 | 136 | #define MX31_INT_CSPI1 (NR_IRQS_LEGACY + 14) |
| 137 | #define MX31_INT_IIM 19 | 137 | #define MX31_INT_ATA (NR_IRQS_LEGACY + 15) |
| 138 | #define MX31_INT_SIM2 20 | 138 | #define MX31_INT_MBX (NR_IRQS_LEGACY + 16) |
| 139 | #define MX31_INT_SIM1 21 | 139 | #define MX31_INT_CSPI3 (NR_IRQS_LEGACY + 17) |
| 140 | #define MX31_INT_RNGA 22 | 140 | #define MX31_INT_UART3 (NR_IRQS_LEGACY + 18) |
| 141 | #define MX31_INT_EVTMON 23 | 141 | #define MX31_INT_IIM (NR_IRQS_LEGACY + 19) |
| 142 | #define MX31_INT_KPP 24 | 142 | #define MX31_INT_SIM2 (NR_IRQS_LEGACY + 20) |
| 143 | #define MX31_INT_RTC 25 | 143 | #define MX31_INT_SIM1 (NR_IRQS_LEGACY + 21) |
| 144 | #define MX31_INT_PWM 26 | 144 | #define MX31_INT_RNGA (NR_IRQS_LEGACY + 22) |
| 145 | #define MX31_INT_EPIT2 27 | 145 | #define MX31_INT_EVTMON (NR_IRQS_LEGACY + 23) |
| 146 | #define MX31_INT_EPIT1 28 | 146 | #define MX31_INT_KPP (NR_IRQS_LEGACY + 24) |
| 147 | #define MX31_INT_GPT 29 | 147 | #define MX31_INT_RTC (NR_IRQS_LEGACY + 25) |
| 148 | #define MX31_INT_POWER_FAIL 30 | 148 | #define MX31_INT_PWM (NR_IRQS_LEGACY + 26) |
| 149 | #define MX31_INT_CCM_DVFS 31 | 149 | #define MX31_INT_EPIT2 (NR_IRQS_LEGACY + 27) |
| 150 | #define MX31_INT_UART2 32 | 150 | #define MX31_INT_EPIT1 (NR_IRQS_LEGACY + 28) |
| 151 | #define MX31_INT_NFC 33 | 151 | #define MX31_INT_GPT (NR_IRQS_LEGACY + 29) |
| 152 | #define MX31_INT_SDMA 34 | 152 | #define MX31_INT_POWER_FAIL (NR_IRQS_LEGACY + 30) |
| 153 | #define MX31_INT_USB_HS1 35 | 153 | #define MX31_INT_CCM_DVFS (NR_IRQS_LEGACY + 31) |
| 154 | #define MX31_INT_USB_HS2 36 | 154 | #define MX31_INT_UART2 (NR_IRQS_LEGACY + 32) |
| 155 | #define MX31_INT_USB_OTG 37 | 155 | #define MX31_INT_NFC (NR_IRQS_LEGACY + 33) |
| 156 | #define MX31_INT_MSHC1 39 | 156 | #define MX31_INT_SDMA (NR_IRQS_LEGACY + 34) |
| 157 | #define MX31_INT_MSHC2 40 | 157 | #define MX31_INT_USB_HS1 (NR_IRQS_LEGACY + 35) |
| 158 | #define MX31_INT_IPU_ERR 41 | 158 | #define MX31_INT_USB_HS2 (NR_IRQS_LEGACY + 36) |
| 159 | #define MX31_INT_IPU_SYN 42 | 159 | #define MX31_INT_USB_OTG (NR_IRQS_LEGACY + 37) |
| 160 | #define MX31_INT_UART1 45 | 160 | #define MX31_INT_MSHC1 (NR_IRQS_LEGACY + 39) |
| 161 | #define MX31_INT_UART4 46 | 161 | #define MX31_INT_MSHC2 (NR_IRQS_LEGACY + 40) |
| 162 | #define MX31_INT_UART5 47 | 162 | #define MX31_INT_IPU_ERR (NR_IRQS_LEGACY + 41) |
| 163 | #define MX31_INT_ECT 48 | 163 | #define MX31_INT_IPU_SYN (NR_IRQS_LEGACY + 42) |
| 164 | #define MX31_INT_SCC_SCM 49 | 164 | #define MX31_INT_UART1 (NR_IRQS_LEGACY + 45) |
| 165 | #define MX31_INT_SCC_SMN 50 | 165 | #define MX31_INT_UART4 (NR_IRQS_LEGACY + 46) |
| 166 | #define MX31_INT_GPIO2 51 | 166 | #define MX31_INT_UART5 (NR_IRQS_LEGACY + 47) |
| 167 | #define MX31_INT_GPIO1 52 | 167 | #define MX31_INT_ECT (NR_IRQS_LEGACY + 48) |
| 168 | #define MX31_INT_CCM 53 | 168 | #define MX31_INT_SCC_SCM (NR_IRQS_LEGACY + 49) |
| 169 | #define MX31_INT_PCMCIA 54 | 169 | #define MX31_INT_SCC_SMN (NR_IRQS_LEGACY + 50) |
| 170 | #define MX31_INT_WDOG 55 | 170 | #define MX31_INT_GPIO2 (NR_IRQS_LEGACY + 51) |
| 171 | #define MX31_INT_GPIO3 56 | 171 | #define MX31_INT_GPIO1 (NR_IRQS_LEGACY + 52) |
| 172 | #define MX31_INT_EXT_POWER 58 | 172 | #define MX31_INT_CCM (NR_IRQS_LEGACY + 53) |
| 173 | #define MX31_INT_EXT_TEMPER 59 | 173 | #define MX31_INT_PCMCIA (NR_IRQS_LEGACY + 54) |
| 174 | #define MX31_INT_EXT_SENSOR60 60 | 174 | #define MX31_INT_WDOG (NR_IRQS_LEGACY + 55) |
| 175 | #define MX31_INT_EXT_SENSOR61 61 | 175 | #define MX31_INT_GPIO3 (NR_IRQS_LEGACY + 56) |
| 176 | #define MX31_INT_EXT_WDOG 62 | 176 | #define MX31_INT_EXT_POWER (NR_IRQS_LEGACY + 58) |
| 177 | #define MX31_INT_EXT_TV 63 | 177 | #define MX31_INT_EXT_TEMPER (NR_IRQS_LEGACY + 59) |
| 178 | #define MX31_INT_EXT_SENSOR60 (NR_IRQS_LEGACY + 60) | ||
| 179 | #define MX31_INT_EXT_SENSOR61 (NR_IRQS_LEGACY + 61) | ||
| 180 | #define MX31_INT_EXT_WDOG (NR_IRQS_LEGACY + 62) | ||
| 181 | #define MX31_INT_EXT_TV (NR_IRQS_LEGACY + 63) | ||
| 178 | 182 | ||
| 179 | #define MX31_DMA_REQ_SDHC1 20 | 183 | #define MX31_DMA_REQ_SDHC1 20 |
| 180 | #define MX31_DMA_REQ_SDHC2 21 | 184 | #define MX31_DMA_REQ_SDHC2 21 |
diff --git a/arch/arm/plat-mxc/include/mach/mx35.h b/arch/arm/plat-mxc/include/mach/mx35.h index 80965a99aa55..2af5d3a699c7 100644 --- a/arch/arm/plat-mxc/include/mach/mx35.h +++ b/arch/arm/plat-mxc/include/mach/mx35.h | |||
| @@ -120,60 +120,61 @@ | |||
| 120 | /* | 120 | /* |
| 121 | * Interrupt numbers | 121 | * Interrupt numbers |
| 122 | */ | 122 | */ |
| 123 | #define MX35_INT_OWIRE 2 | 123 | #include <asm/irq.h> |
| 124 | #define MX35_INT_I2C3 3 | 124 | #define MX35_INT_OWIRE (NR_IRQS_LEGACY + 2) |
| 125 | #define MX35_INT_I2C2 4 | 125 | #define MX35_INT_I2C3 (NR_IRQS_LEGACY + 3) |
| 126 | #define MX35_INT_RTIC 6 | 126 | #define MX35_INT_I2C2 (NR_IRQS_LEGACY + 4) |
| 127 | #define MX35_INT_ESDHC1 7 | 127 | #define MX35_INT_RTIC (NR_IRQS_LEGACY + 6) |
| 128 | #define MX35_INT_ESDHC2 8 | 128 | #define MX35_INT_ESDHC1 (NR_IRQS_LEGACY + 7) |
| 129 | #define MX35_INT_ESDHC3 9 | 129 | #define MX35_INT_ESDHC2 (NR_IRQS_LEGACY + 8) |
| 130 | #define MX35_INT_I2C1 10 | 130 | #define MX35_INT_ESDHC3 (NR_IRQS_LEGACY + 9) |
| 131 | #define MX35_INT_SSI1 11 | 131 | #define MX35_INT_I2C1 (NR_IRQS_LEGACY + 10) |
| 132 | #define MX35_INT_SSI2 12 | 132 | #define MX35_INT_SSI1 (NR_IRQS_LEGACY + 11) |
| 133 | #define MX35_INT_CSPI2 13 | 133 | #define MX35_INT_SSI2 (NR_IRQS_LEGACY + 12) |
| 134 | #define MX35_INT_CSPI1 14 | 134 | #define MX35_INT_CSPI2 (NR_IRQS_LEGACY + 13) |
| 135 | #define MX35_INT_ATA 15 | 135 | #define MX35_INT_CSPI1 (NR_IRQS_LEGACY + 14) |
| 136 | #define MX35_INT_GPU2D 16 | 136 | #define MX35_INT_ATA (NR_IRQS_LEGACY + 15) |
| 137 | #define MX35_INT_ASRC 17 | 137 | #define MX35_INT_GPU2D (NR_IRQS_LEGACY + 16) |
| 138 | #define MX35_INT_UART3 18 | 138 | #define MX35_INT_ASRC (NR_IRQS_LEGACY + 17) |
| 139 | #define MX35_INT_IIM 19 | 139 | #define MX35_INT_UART3 (NR_IRQS_LEGACY + 18) |
| 140 | #define MX35_INT_RNGA 22 | 140 | #define MX35_INT_IIM (NR_IRQS_LEGACY + 19) |
| 141 | #define MX35_INT_EVTMON 23 | 141 | #define MX35_INT_RNGA (NR_IRQS_LEGACY + 22) |
| 142 | #define MX35_INT_KPP 24 | 142 | #define MX35_INT_EVTMON (NR_IRQS_LEGACY + 23) |
| 143 | #define MX35_INT_RTC 25 | 143 | #define MX35_INT_KPP (NR_IRQS_LEGACY + 24) |
| 144 | #define MX35_INT_PWM 26 | 144 | #define MX35_INT_RTC (NR_IRQS_LEGACY + 25) |
| 145 | #define MX35_INT_EPIT2 27 | 145 | #define MX35_INT_PWM (NR_IRQS_LEGACY + 26) |
| 146 | #define MX35_INT_EPIT1 28 | 146 | #define MX35_INT_EPIT2 (NR_IRQS_LEGACY + 27) |
| 147 | #define MX35_INT_GPT 29 | 147 | #define MX35_INT_EPIT1 (NR_IRQS_LEGACY + 28) |
| 148 | #define MX35_INT_POWER_FAIL 30 | 148 | #define MX35_INT_GPT (NR_IRQS_LEGACY + 29) |
| 149 | #define MX35_INT_UART2 32 | 149 | #define MX35_INT_POWER_FAIL (NR_IRQS_LEGACY + 30) |
| 150 | #define MX35_INT_NFC 33 | 150 | #define MX35_INT_UART2 (NR_IRQS_LEGACY + 32) |
| 151 | #define MX35_INT_SDMA 34 | 151 | #define MX35_INT_NFC (NR_IRQS_LEGACY + 33) |
| 152 | #define MX35_INT_USB_HS 35 | 152 | #define MX35_INT_SDMA (NR_IRQS_LEGACY + 34) |
| 153 | #define MX35_INT_USB_OTG 37 | 153 | #define MX35_INT_USB_HS (NR_IRQS_LEGACY + 35) |
| 154 | #define MX35_INT_MSHC1 39 | 154 | #define MX35_INT_USB_OTG (NR_IRQS_LEGACY + 37) |
| 155 | #define MX35_INT_ESAI 40 | 155 | #define MX35_INT_MSHC1 (NR_IRQS_LEGACY + 39) |
| 156 | #define MX35_INT_IPU_ERR 41 | 156 | #define MX35_INT_ESAI (NR_IRQS_LEGACY + 40) |
| 157 | #define MX35_INT_IPU_SYN 42 | 157 | #define MX35_INT_IPU_ERR (NR_IRQS_LEGACY + 41) |
| 158 | #define MX35_INT_CAN1 43 | 158 | #define MX35_INT_IPU_SYN (NR_IRQS_LEGACY + 42) |
| 159 | #define MX35_INT_CAN2 44 | 159 | #define MX35_INT_CAN1 (NR_IRQS_LEGACY + 43) |
| 160 | #define MX35_INT_UART1 45 | 160 | #define MX35_INT_CAN2 (NR_IRQS_LEGACY + 44) |
| 161 | #define MX35_INT_MLB 46 | 161 | #define MX35_INT_UART1 (NR_IRQS_LEGACY + 45) |
| 162 | #define MX35_INT_SPDIF 47 | 162 | #define MX35_INT_MLB (NR_IRQS_LEGACY + 46) |
| 163 | #define MX35_INT_ECT 48 | 163 | #define MX35_INT_SPDIF (NR_IRQS_LEGACY + 47) |
| 164 | #define MX35_INT_SCC_SCM 49 | 164 | #define MX35_INT_ECT (NR_IRQS_LEGACY + 48) |
| 165 | #define MX35_INT_SCC_SMN 50 | 165 | #define MX35_INT_SCC_SCM (NR_IRQS_LEGACY + 49) |
| 166 | #define MX35_INT_GPIO2 51 | 166 | #define MX35_INT_SCC_SMN (NR_IRQS_LEGACY + 50) |
| 167 | #define MX35_INT_GPIO1 52 | 167 | #define MX35_INT_GPIO2 (NR_IRQS_LEGACY + 51) |
| 168 | #define MX35_INT_WDOG 55 | 168 | #define MX35_INT_GPIO1 (NR_IRQS_LEGACY + 52) |
| 169 | #define MX35_INT_GPIO3 56 | 169 | #define MX35_INT_WDOG (NR_IRQS_LEGACY + 55) |
| 170 | #define MX35_INT_FEC 57 | 170 | #define MX35_INT_GPIO3 (NR_IRQS_LEGACY + 56) |
| 171 | #define MX35_INT_EXT_POWER 58 | 171 | #define MX35_INT_FEC (NR_IRQS_LEGACY + 57) |
| 172 | #define MX35_INT_EXT_TEMPER 59 | 172 | #define MX35_INT_EXT_POWER (NR_IRQS_LEGACY + 58) |
| 173 | #define MX35_INT_EXT_SENSOR60 60 | 173 | #define MX35_INT_EXT_TEMPER (NR_IRQS_LEGACY + 59) |
| 174 | #define MX35_INT_EXT_SENSOR61 61 | 174 | #define MX35_INT_EXT_SENSOR60 (NR_IRQS_LEGACY + 60) |
| 175 | #define MX35_INT_EXT_WDOG 62 | 175 | #define MX35_INT_EXT_SENSOR61 (NR_IRQS_LEGACY + 61) |
| 176 | #define MX35_INT_EXT_TV 63 | 176 | #define MX35_INT_EXT_WDOG (NR_IRQS_LEGACY + 62) |
| 177 | #define MX35_INT_EXT_TV (NR_IRQS_LEGACY + 63) | ||
| 177 | 178 | ||
| 178 | #define MX35_DMA_REQ_SSI2_RX1 22 | 179 | #define MX35_DMA_REQ_SSI2_RX1 22 |
| 179 | #define MX35_DMA_REQ_SSI2_TX1 23 | 180 | #define MX35_DMA_REQ_SSI2_TX1 23 |
diff --git a/arch/arm/plat-mxc/include/mach/mx3x.h b/arch/arm/plat-mxc/include/mach/mx3x.h index 30dbf424583e..96fb4fbc8ad7 100644 --- a/arch/arm/plat-mxc/include/mach/mx3x.h +++ b/arch/arm/plat-mxc/include/mach/mx3x.h | |||
| @@ -143,44 +143,45 @@ | |||
| 143 | /* | 143 | /* |
| 144 | * Interrupt numbers | 144 | * Interrupt numbers |
| 145 | */ | 145 | */ |
| 146 | #define MX3x_INT_I2C3 3 | 146 | #include <asm/irq.h> |
| 147 | #define MX3x_INT_I2C2 4 | 147 | #define MX3x_INT_I2C3 (NR_IRQS_LEGACY + 3) |
| 148 | #define MX3x_INT_RTIC 6 | 148 | #define MX3x_INT_I2C2 (NR_IRQS_LEGACY + 4) |
| 149 | #define MX3x_INT_I2C 10 | 149 | #define MX3x_INT_RTIC (NR_IRQS_LEGACY + 6) |
| 150 | #define MX3x_INT_CSPI2 13 | 150 | #define MX3x_INT_I2C (NR_IRQS_LEGACY + 10) |
| 151 | #define MX3x_INT_CSPI1 14 | 151 | #define MX3x_INT_CSPI2 (NR_IRQS_LEGACY + 13) |
| 152 | #define MX3x_INT_ATA 15 | 152 | #define MX3x_INT_CSPI1 (NR_IRQS_LEGACY + 14) |
| 153 | #define MX3x_INT_UART3 18 | 153 | #define MX3x_INT_ATA (NR_IRQS_LEGACY + 15) |
| 154 | #define MX3x_INT_IIM 19 | 154 | #define MX3x_INT_UART3 (NR_IRQS_LEGACY + 18) |
| 155 | #define MX3x_INT_RNGA 22 | 155 | #define MX3x_INT_IIM (NR_IRQS_LEGACY + 19) |
| 156 | #define MX3x_INT_EVTMON 23 | 156 | #define MX3x_INT_RNGA (NR_IRQS_LEGACY + 22) |
| 157 | #define MX3x_INT_KPP 24 | 157 | #define MX3x_INT_EVTMON (NR_IRQS_LEGACY + 23) |
| 158 | #define MX3x_INT_RTC 25 | 158 | #define MX3x_INT_KPP (NR_IRQS_LEGACY + 24) |
| 159 | #define MX3x_INT_PWM 26 | 159 | #define MX3x_INT_RTC (NR_IRQS_LEGACY + 25) |
| 160 | #define MX3x_INT_EPIT2 27 | 160 | #define MX3x_INT_PWM (NR_IRQS_LEGACY + 26) |
| 161 | #define MX3x_INT_EPIT1 28 | 161 | #define MX3x_INT_EPIT2 (NR_IRQS_LEGACY + 27) |
| 162 | #define MX3x_INT_GPT 29 | 162 | #define MX3x_INT_EPIT1 (NR_IRQS_LEGACY + 28) |
| 163 | #define MX3x_INT_POWER_FAIL 30 | 163 | #define MX3x_INT_GPT (NR_IRQS_LEGACY + 29) |
| 164 | #define MX3x_INT_UART2 32 | 164 | #define MX3x_INT_POWER_FAIL (NR_IRQS_LEGACY + 30) |
| 165 | #define MX3x_INT_NANDFC 33 | 165 | #define MX3x_INT_UART2 (NR_IRQS_LEGACY + 32) |
| 166 | #define MX3x_INT_SDMA 34 | 166 | #define MX3x_INT_NANDFC (NR_IRQS_LEGACY + 33) |
| 167 | #define MX3x_INT_MSHC1 39 | 167 | #define MX3x_INT_SDMA (NR_IRQS_LEGACY + 34) |
| 168 | #define MX3x_INT_IPU_ERR 41 | 168 | #define MX3x_INT_MSHC1 (NR_IRQS_LEGACY + 39) |
| 169 | #define MX3x_INT_IPU_SYN 42 | 169 | #define MX3x_INT_IPU_ERR (NR_IRQS_LEGACY + 41) |
| 170 | #define MX3x_INT_UART1 45 | 170 | #define MX3x_INT_IPU_SYN (NR_IRQS_LEGACY + 42) |
| 171 | #define MX3x_INT_ECT 48 | 171 | #define MX3x_INT_UART1 (NR_IRQS_LEGACY + 45) |
| 172 | #define MX3x_INT_SCC_SCM 49 | 172 | #define MX3x_INT_ECT (NR_IRQS_LEGACY + 48) |
| 173 | #define MX3x_INT_SCC_SMN 50 | 173 | #define MX3x_INT_SCC_SCM (NR_IRQS_LEGACY + 49) |
| 174 | #define MX3x_INT_GPIO2 51 | 174 | #define MX3x_INT_SCC_SMN (NR_IRQS_LEGACY + 50) |
| 175 | #define MX3x_INT_GPIO1 52 | 175 | #define MX3x_INT_GPIO2 (NR_IRQS_LEGACY + 51) |
| 176 | #define MX3x_INT_WDOG 55 | 176 | #define MX3x_INT_GPIO1 (NR_IRQS_LEGACY + 52) |
| 177 | #define MX3x_INT_GPIO3 56 | 177 | #define MX3x_INT_WDOG (NR_IRQS_LEGACY + 55) |
| 178 | #define MX3x_INT_EXT_POWER 58 | 178 | #define MX3x_INT_GPIO3 (NR_IRQS_LEGACY + 56) |
| 179 | #define MX3x_INT_EXT_TEMPER 59 | 179 | #define MX3x_INT_EXT_POWER (NR_IRQS_LEGACY + 58) |
| 180 | #define MX3x_INT_EXT_SENSOR60 60 | 180 | #define MX3x_INT_EXT_TEMPER (NR_IRQS_LEGACY + 59) |
| 181 | #define MX3x_INT_EXT_SENSOR61 61 | 181 | #define MX3x_INT_EXT_SENSOR60 (NR_IRQS_LEGACY + 60) |
| 182 | #define MX3x_INT_EXT_WDOG 62 | 182 | #define MX3x_INT_EXT_SENSOR61 (NR_IRQS_LEGACY + 61) |
| 183 | #define MX3x_INT_EXT_TV 63 | 183 | #define MX3x_INT_EXT_WDOG (NR_IRQS_LEGACY + 62) |
| 184 | #define MX3x_INT_EXT_TV (NR_IRQS_LEGACY + 63) | ||
| 184 | 185 | ||
| 185 | #define MX3x_PROD_SIGNATURE 0x1 /* For MX31 */ | 186 | #define MX3x_PROD_SIGNATURE 0x1 /* For MX31 */ |
| 186 | 187 | ||
diff --git a/arch/arm/plat-mxc/include/mach/mx50.h b/arch/arm/plat-mxc/include/mach/mx50.h index 5f2da75a47f4..09ac19c1570c 100644 --- a/arch/arm/plat-mxc/include/mach/mx50.h +++ b/arch/arm/plat-mxc/include/mach/mx50.h | |||
| @@ -188,99 +188,100 @@ | |||
| 188 | /* | 188 | /* |
| 189 | * Interrupt numbers | 189 | * Interrupt numbers |
| 190 | */ | 190 | */ |
| 191 | #define MX50_INT_MMC_SDHC1 1 | 191 | #include <asm/irq.h> |
| 192 | #define MX50_INT_MMC_SDHC2 2 | 192 | #define MX50_INT_MMC_SDHC1 (NR_IRQS_LEGACY + 1) |
| 193 | #define MX50_INT_MMC_SDHC3 3 | 193 | #define MX50_INT_MMC_SDHC2 (NR_IRQS_LEGACY + 2) |
| 194 | #define MX50_INT_MMC_SDHC4 4 | 194 | #define MX50_INT_MMC_SDHC3 (NR_IRQS_LEGACY + 3) |
| 195 | #define MX50_INT_DAP 5 | 195 | #define MX50_INT_MMC_SDHC4 (NR_IRQS_LEGACY + 4) |
| 196 | #define MX50_INT_SDMA 6 | 196 | #define MX50_INT_DAP (NR_IRQS_LEGACY + 5) |
| 197 | #define MX50_INT_IOMUX 7 | 197 | #define MX50_INT_SDMA (NR_IRQS_LEGACY + 6) |
| 198 | #define MX50_INT_UART4 13 | 198 | #define MX50_INT_IOMUX (NR_IRQS_LEGACY + 7) |
| 199 | #define MX50_INT_USB_H1 14 | 199 | #define MX50_INT_UART4 (NR_IRQS_LEGACY + 13) |
| 200 | #define MX50_INT_USB_OTG 18 | 200 | #define MX50_INT_USB_H1 (NR_IRQS_LEGACY + 14) |
| 201 | #define MX50_INT_DATABAHN 19 | 201 | #define MX50_INT_USB_OTG (NR_IRQS_LEGACY + 18) |
| 202 | #define MX50_INT_ELCDIF 20 | 202 | #define MX50_INT_DATABAHN (NR_IRQS_LEGACY + 19) |
| 203 | #define MX50_INT_EPXP 21 | 203 | #define MX50_INT_ELCDIF (NR_IRQS_LEGACY + 20) |
| 204 | #define MX50_INT_SRTC_NTZ 24 | 204 | #define MX50_INT_EPXP (NR_IRQS_LEGACY + 21) |
| 205 | #define MX50_INT_SRTC_TZ 25 | 205 | #define MX50_INT_SRTC_NTZ (NR_IRQS_LEGACY + 24) |
| 206 | #define MX50_INT_EPDC 27 | 206 | #define MX50_INT_SRTC_TZ (NR_IRQS_LEGACY + 25) |
| 207 | #define MX50_INT_NIC 28 | 207 | #define MX50_INT_EPDC (NR_IRQS_LEGACY + 27) |
| 208 | #define MX50_INT_SSI1 29 | 208 | #define MX50_INT_NIC (NR_IRQS_LEGACY + 28) |
| 209 | #define MX50_INT_SSI2 30 | 209 | #define MX50_INT_SSI1 (NR_IRQS_LEGACY + 29) |
| 210 | #define MX50_INT_UART1 31 | 210 | #define MX50_INT_SSI2 (NR_IRQS_LEGACY + 30) |
| 211 | #define MX50_INT_UART2 32 | 211 | #define MX50_INT_UART1 (NR_IRQS_LEGACY + 31) |
| 212 | #define MX50_INT_UART3 33 | 212 | #define MX50_INT_UART2 (NR_IRQS_LEGACY + 32) |
| 213 | #define MX50_INT_RESV34 34 | 213 | #define MX50_INT_UART3 (NR_IRQS_LEGACY + 33) |
| 214 | #define MX50_INT_RESV35 35 | 214 | #define MX50_INT_RESV34 (NR_IRQS_LEGACY + 34) |
| 215 | #define MX50_INT_CSPI1 36 | 215 | #define MX50_INT_RESV35 (NR_IRQS_LEGACY + 35) |
| 216 | #define MX50_INT_CSPI2 37 | 216 | #define MX50_INT_CSPI1 (NR_IRQS_LEGACY + 36) |
| 217 | #define MX50_INT_CSPI 38 | 217 | #define MX50_INT_CSPI2 (NR_IRQS_LEGACY + 37) |
| 218 | #define MX50_INT_GPT 39 | 218 | #define MX50_INT_CSPI (NR_IRQS_LEGACY + 38) |
| 219 | #define MX50_INT_EPIT1 40 | 219 | #define MX50_INT_GPT (NR_IRQS_LEGACY + 39) |
| 220 | #define MX50_INT_GPIO1_INT7 42 | 220 | #define MX50_INT_EPIT1 (NR_IRQS_LEGACY + 40) |
| 221 | #define MX50_INT_GPIO1_INT6 43 | 221 | #define MX50_INT_GPIO1_INT7 (NR_IRQS_LEGACY + 42) |
| 222 | #define MX50_INT_GPIO1_INT5 44 | 222 | #define MX50_INT_GPIO1_INT6 (NR_IRQS_LEGACY + 43) |
| 223 | #define MX50_INT_GPIO1_INT4 45 | 223 | #define MX50_INT_GPIO1_INT5 (NR_IRQS_LEGACY + 44) |
| 224 | #define MX50_INT_GPIO1_INT3 46 | 224 | #define MX50_INT_GPIO1_INT4 (NR_IRQS_LEGACY + 45) |
| 225 | #define MX50_INT_GPIO1_INT2 47 | 225 | #define MX50_INT_GPIO1_INT3 (NR_IRQS_LEGACY + 46) |
| 226 | #define MX50_INT_GPIO1_INT1 48 | 226 | #define MX50_INT_GPIO1_INT2 (NR_IRQS_LEGACY + 47) |
| 227 | #define MX50_INT_GPIO1_INT0 49 | 227 | #define MX50_INT_GPIO1_INT1 (NR_IRQS_LEGACY + 48) |
| 228 | #define MX50_INT_GPIO1_LOW 50 | 228 | #define MX50_INT_GPIO1_INT0 (NR_IRQS_LEGACY + 49) |
| 229 | #define MX50_INT_GPIO1_HIGH 51 | 229 | #define MX50_INT_GPIO1_LOW (NR_IRQS_LEGACY + 50) |
| 230 | #define MX50_INT_GPIO2_LOW 52 | 230 | #define MX50_INT_GPIO1_HIGH (NR_IRQS_LEGACY + 51) |
| 231 | #define MX50_INT_GPIO2_HIGH 53 | 231 | #define MX50_INT_GPIO2_LOW (NR_IRQS_LEGACY + 52) |
| 232 | #define MX50_INT_GPIO3_LOW 54 | 232 | #define MX50_INT_GPIO2_HIGH (NR_IRQS_LEGACY + 53) |
| 233 | #define MX50_INT_GPIO3_HIGH 55 | 233 | #define MX50_INT_GPIO3_LOW (NR_IRQS_LEGACY + 54) |
| 234 | #define MX50_INT_GPIO4_LOW 56 | 234 | #define MX50_INT_GPIO3_HIGH (NR_IRQS_LEGACY + 55) |
| 235 | #define MX50_INT_GPIO4_HIGH 57 | 235 | #define MX50_INT_GPIO4_LOW (NR_IRQS_LEGACY + 56) |
| 236 | #define MX50_INT_WDOG1 58 | 236 | #define MX50_INT_GPIO4_HIGH (NR_IRQS_LEGACY + 57) |
| 237 | #define MX50_INT_KPP 60 | 237 | #define MX50_INT_WDOG1 (NR_IRQS_LEGACY + 58) |
| 238 | #define MX50_INT_PWM1 61 | 238 | #define MX50_INT_KPP (NR_IRQS_LEGACY + 60) |
| 239 | #define MX50_INT_I2C1 62 | 239 | #define MX50_INT_PWM1 (NR_IRQS_LEGACY + 61) |
| 240 | #define MX50_INT_I2C2 63 | 240 | #define MX50_INT_I2C1 (NR_IRQS_LEGACY + 62) |
| 241 | #define MX50_INT_I2C3 64 | 241 | #define MX50_INT_I2C2 (NR_IRQS_LEGACY + 63) |
| 242 | #define MX50_INT_RESV65 65 | 242 | #define MX50_INT_I2C3 (NR_IRQS_LEGACY + 64) |
| 243 | #define MX50_INT_DCDC 66 | 243 | #define MX50_INT_RESV65 (NR_IRQS_LEGACY + 65) |
| 244 | #define MX50_INT_THERMAL_ALARM 67 | 244 | #define MX50_INT_DCDC (NR_IRQS_LEGACY + 66) |
| 245 | #define MX50_INT_ANA3 68 | 245 | #define MX50_INT_THERMAL_ALARM (NR_IRQS_LEGACY + 67) |
| 246 | #define MX50_INT_ANA4 69 | 246 | #define MX50_INT_ANA3 (NR_IRQS_LEGACY + 68) |
| 247 | #define MX50_INT_CCM1 71 | 247 | #define MX50_INT_ANA4 (NR_IRQS_LEGACY + 69) |
| 248 | #define MX50_INT_CCM2 72 | 248 | #define MX50_INT_CCM1 (NR_IRQS_LEGACY + 71) |
| 249 | #define MX50_INT_GPC1 73 | 249 | #define MX50_INT_CCM2 (NR_IRQS_LEGACY + 72) |
| 250 | #define MX50_INT_GPC2 74 | 250 | #define MX50_INT_GPC1 (NR_IRQS_LEGACY + 73) |
| 251 | #define MX50_INT_SRC 75 | 251 | #define MX50_INT_GPC2 (NR_IRQS_LEGACY + 74) |
| 252 | #define MX50_INT_NM 76 | 252 | #define MX50_INT_SRC (NR_IRQS_LEGACY + 75) |
| 253 | #define MX50_INT_PMU 77 | 253 | #define MX50_INT_NM (NR_IRQS_LEGACY + 76) |
| 254 | #define MX50_INT_CTI_IRQ 78 | 254 | #define MX50_INT_PMU (NR_IRQS_LEGACY + 77) |
| 255 | #define MX50_INT_CTI1_TG0 79 | 255 | #define MX50_INT_CTI_IRQ (NR_IRQS_LEGACY + 78) |
| 256 | #define MX50_INT_CTI1_TG1 80 | 256 | #define MX50_INT_CTI1_TG0 (NR_IRQS_LEGACY + 79) |
| 257 | #define MX50_INT_GPU2_IRQ 84 | 257 | #define MX50_INT_CTI1_TG1 (NR_IRQS_LEGACY + 80) |
| 258 | #define MX50_INT_GPU2_BUSY 85 | 258 | #define MX50_INT_GPU2_IRQ (NR_IRQS_LEGACY + 84) |
| 259 | #define MX50_INT_UART5 86 | 259 | #define MX50_INT_GPU2_BUSY (NR_IRQS_LEGACY + 85) |
| 260 | #define MX50_INT_FEC 87 | 260 | #define MX50_INT_UART5 (NR_IRQS_LEGACY + 86) |
| 261 | #define MX50_INT_OWIRE 88 | 261 | #define MX50_INT_FEC (NR_IRQS_LEGACY + 87) |
| 262 | #define MX50_INT_CTI1_TG2 89 | 262 | #define MX50_INT_OWIRE (NR_IRQS_LEGACY + 88) |
| 263 | #define MX50_INT_SJC 90 | 263 | #define MX50_INT_CTI1_TG2 (NR_IRQS_LEGACY + 89) |
| 264 | #define MX50_INT_DCP_CHAN1_3 91 | 264 | #define MX50_INT_SJC (NR_IRQS_LEGACY + 90) |
| 265 | #define MX50_INT_DCP_CHAN0 92 | 265 | #define MX50_INT_DCP_CHAN1_3 (NR_IRQS_LEGACY + 91) |
| 266 | #define MX50_INT_PWM2 94 | 266 | #define MX50_INT_DCP_CHAN0 (NR_IRQS_LEGACY + 92) |
| 267 | #define MX50_INT_RNGB 97 | 267 | #define MX50_INT_PWM2 (NR_IRQS_LEGACY + 94) |
| 268 | #define MX50_INT_CTI1_TG3 98 | 268 | #define MX50_INT_RNGB (NR_IRQS_LEGACY + 97) |
| 269 | #define MX50_INT_RAWNAND_BCH 100 | 269 | #define MX50_INT_CTI1_TG3 (NR_IRQS_LEGACY + 98) |
| 270 | #define MX50_INT_RAWNAND_GPMI 102 | 270 | #define MX50_INT_RAWNAND_BCH (NR_IRQS_LEGACY + 100) |
| 271 | #define MX50_INT_GPIO5_LOW 103 | 271 | #define MX50_INT_RAWNAND_GPMI (NR_IRQS_LEGACY + 102) |
| 272 | #define MX50_INT_GPIO5_HIGH 104 | 272 | #define MX50_INT_GPIO5_LOW (NR_IRQS_LEGACY + 103) |
| 273 | #define MX50_INT_GPIO6_LOW 105 | 273 | #define MX50_INT_GPIO5_HIGH (NR_IRQS_LEGACY + 104) |
| 274 | #define MX50_INT_GPIO6_HIGH 106 | 274 | #define MX50_INT_GPIO6_LOW (NR_IRQS_LEGACY + 105) |
| 275 | #define MX50_INT_MSHC 109 | 275 | #define MX50_INT_GPIO6_HIGH (NR_IRQS_LEGACY + 106) |
| 276 | #define MX50_INT_APBHDMA_CHAN0 110 | 276 | #define MX50_INT_MSHC (NR_IRQS_LEGACY + 109) |
| 277 | #define MX50_INT_APBHDMA_CHAN1 111 | 277 | #define MX50_INT_APBHDMA_CHAN0 (NR_IRQS_LEGACY + 110) |
| 278 | #define MX50_INT_APBHDMA_CHAN2 112 | 278 | #define MX50_INT_APBHDMA_CHAN1 (NR_IRQS_LEGACY + 111) |
| 279 | #define MX50_INT_APBHDMA_CHAN3 113 | 279 | #define MX50_INT_APBHDMA_CHAN2 (NR_IRQS_LEGACY + 112) |
| 280 | #define MX50_INT_APBHDMA_CHAN4 114 | 280 | #define MX50_INT_APBHDMA_CHAN3 (NR_IRQS_LEGACY + 113) |
| 281 | #define MX50_INT_APBHDMA_CHAN5 115 | 281 | #define MX50_INT_APBHDMA_CHAN4 (NR_IRQS_LEGACY + 114) |
| 282 | #define MX50_INT_APBHDMA_CHAN6 116 | 282 | #define MX50_INT_APBHDMA_CHAN5 (NR_IRQS_LEGACY + 115) |
| 283 | #define MX50_INT_APBHDMA_CHAN7 117 | 283 | #define MX50_INT_APBHDMA_CHAN6 (NR_IRQS_LEGACY + 116) |
| 284 | #define MX50_INT_APBHDMA_CHAN7 (NR_IRQS_LEGACY + 117) | ||
| 284 | 285 | ||
| 285 | #if !defined(__ASSEMBLY__) && !defined(__MXC_BOOT_UNCOMPRESS) | 286 | #if !defined(__ASSEMBLY__) && !defined(__MXC_BOOT_UNCOMPRESS) |
| 286 | extern int mx50_revision(void); | 287 | extern int mx50_revision(void); |
diff --git a/arch/arm/plat-mxc/include/mach/mx51.h b/arch/arm/plat-mxc/include/mach/mx51.h index cdf07c65ec1e..af844f76261a 100644 --- a/arch/arm/plat-mxc/include/mach/mx51.h +++ b/arch/arm/plat-mxc/include/mach/mx51.h | |||
| @@ -232,110 +232,111 @@ | |||
| 232 | /* | 232 | /* |
| 233 | * Interrupt numbers | 233 | * Interrupt numbers |
| 234 | */ | 234 | */ |
| 235 | #define MX51_INT_BASE 0 | 235 | #include <asm/irq.h> |
| 236 | #define MX51_INT_RESV0 0 | 236 | #define MX51_INT_BASE (NR_IRQS_LEGACY + 0) |
| 237 | #define MX51_INT_ESDHC1 1 | 237 | #define MX51_INT_RESV0 (NR_IRQS_LEGACY + 0) |
| 238 | #define MX51_INT_ESDHC2 2 | 238 | #define MX51_INT_ESDHC1 (NR_IRQS_LEGACY + 1) |
| 239 | #define MX51_INT_ESDHC3 3 | 239 | #define MX51_INT_ESDHC2 (NR_IRQS_LEGACY + 2) |
| 240 | #define MX51_INT_ESDHC4 4 | 240 | #define MX51_INT_ESDHC3 (NR_IRQS_LEGACY + 3) |
| 241 | #define MX51_INT_RESV5 5 | 241 | #define MX51_INT_ESDHC4 (NR_IRQS_LEGACY + 4) |
| 242 | #define MX51_INT_SDMA 6 | 242 | #define MX51_INT_RESV5 (NR_IRQS_LEGACY + 5) |
| 243 | #define MX51_INT_IOMUX 7 | 243 | #define MX51_INT_SDMA (NR_IRQS_LEGACY + 6) |
| 244 | #define MX51_INT_NFC 8 | 244 | #define MX51_INT_IOMUX (NR_IRQS_LEGACY + 7) |
| 245 | #define MX51_INT_VPU 9 | 245 | #define MX51_INT_NFC (NR_IRQS_LEGACY + 8) |
| 246 | #define MX51_INT_IPU_ERR 10 | 246 | #define MX51_INT_VPU (NR_IRQS_LEGACY + 9) |
| 247 | #define MX51_INT_IPU_SYN 11 | 247 | #define MX51_INT_IPU_ERR (NR_IRQS_LEGACY + 10) |
| 248 | #define MX51_INT_GPU 12 | 248 | #define MX51_INT_IPU_SYN (NR_IRQS_LEGACY + 11) |
| 249 | #define MX51_INT_RESV13 13 | 249 | #define MX51_INT_GPU (NR_IRQS_LEGACY + 12) |
| 250 | #define MX51_INT_USB_HS1 14 | 250 | #define MX51_INT_RESV13 (NR_IRQS_LEGACY + 13) |
| 251 | #define MX51_INT_EMI 15 | 251 | #define MX51_INT_USB_HS1 (NR_IRQS_LEGACY + 14) |
| 252 | #define MX51_INT_USB_HS2 16 | 252 | #define MX51_INT_EMI (NR_IRQS_LEGACY + 15) |
| 253 | #define MX51_INT_USB_HS3 17 | 253 | #define MX51_INT_USB_HS2 (NR_IRQS_LEGACY + 16) |
| 254 | #define MX51_INT_USB_OTG 18 | 254 | #define MX51_INT_USB_HS3 (NR_IRQS_LEGACY + 17) |
| 255 | #define MX51_INT_SAHARA_H0 19 | 255 | #define MX51_INT_USB_OTG (NR_IRQS_LEGACY + 18) |
| 256 | #define MX51_INT_SAHARA_H1 20 | 256 | #define MX51_INT_SAHARA_H0 (NR_IRQS_LEGACY + 19) |
| 257 | #define MX51_INT_SCC_SMN 21 | 257 | #define MX51_INT_SAHARA_H1 (NR_IRQS_LEGACY + 20) |
| 258 | #define MX51_INT_SCC_STZ 22 | 258 | #define MX51_INT_SCC_SMN (NR_IRQS_LEGACY + 21) |
| 259 | #define MX51_INT_SCC_SCM 23 | 259 | #define MX51_INT_SCC_STZ (NR_IRQS_LEGACY + 22) |
| 260 | #define MX51_INT_SRTC_NTZ 24 | 260 | #define MX51_INT_SCC_SCM (NR_IRQS_LEGACY + 23) |
| 261 | #define MX51_INT_SRTC_TZ 25 | 261 | #define MX51_INT_SRTC_NTZ (NR_IRQS_LEGACY + 24) |
| 262 | #define MX51_INT_RTIC 26 | 262 | #define MX51_INT_SRTC_TZ (NR_IRQS_LEGACY + 25) |
| 263 | #define MX51_INT_CSU 27 | 263 | #define MX51_INT_RTIC (NR_IRQS_LEGACY + 26) |
| 264 | #define MX51_INT_SLIM_B 28 | 264 | #define MX51_INT_CSU (NR_IRQS_LEGACY + 27) |
| 265 | #define MX51_INT_SSI1 29 | 265 | #define MX51_INT_SLIM_B (NR_IRQS_LEGACY + 28) |
| 266 | #define MX51_INT_SSI2 30 | 266 | #define MX51_INT_SSI1 (NR_IRQS_LEGACY + 29) |
| 267 | #define MX51_INT_UART1 31 | 267 | #define MX51_INT_SSI2 (NR_IRQS_LEGACY + 30) |
| 268 | #define MX51_INT_UART2 32 | 268 | #define MX51_INT_UART1 (NR_IRQS_LEGACY + 31) |
| 269 | #define MX51_INT_UART3 33 | 269 | #define MX51_INT_UART2 (NR_IRQS_LEGACY + 32) |
| 270 | #define MX51_INT_RESV34 34 | 270 | #define MX51_INT_UART3 (NR_IRQS_LEGACY + 33) |
| 271 | #define MX51_INT_RESV35 35 | 271 | #define MX51_INT_RESV34 (NR_IRQS_LEGACY + 34) |
| 272 | #define MX51_INT_ECSPI1 36 | 272 | #define MX51_INT_RESV35 (NR_IRQS_LEGACY + 35) |
| 273 | #define MX51_INT_ECSPI2 37 | 273 | #define MX51_INT_ECSPI1 (NR_IRQS_LEGACY + 36) |
| 274 | #define MX51_INT_CSPI 38 | 274 | #define MX51_INT_ECSPI2 (NR_IRQS_LEGACY + 37) |
| 275 | #define MX51_INT_GPT 39 | 275 | #define MX51_INT_CSPI (NR_IRQS_LEGACY + 38) |
| 276 | #define MX51_INT_EPIT1 40 | 276 | #define MX51_INT_GPT (NR_IRQS_LEGACY + 39) |
| 277 | #define MX51_INT_EPIT2 41 | 277 | #define MX51_INT_EPIT1 (NR_IRQS_LEGACY + 40) |
| 278 | #define MX51_INT_GPIO1_INT7 42 | 278 | #define MX51_INT_EPIT2 (NR_IRQS_LEGACY + 41) |
| 279 | #define MX51_INT_GPIO1_INT6 43 | 279 | #define MX51_INT_GPIO1_INT7 (NR_IRQS_LEGACY + 42) |
| 280 | #define MX51_INT_GPIO1_INT5 44 | 280 | #define MX51_INT_GPIO1_INT6 (NR_IRQS_LEGACY + 43) |
| 281 | #define MX51_INT_GPIO1_INT4 45 | 281 | #define MX51_INT_GPIO1_INT5 (NR_IRQS_LEGACY + 44) |
| 282 | #define MX51_INT_GPIO1_INT3 46 | 282 | #define MX51_INT_GPIO1_INT4 (NR_IRQS_LEGACY + 45) |
| 283 | #define MX51_INT_GPIO1_INT2 47 | 283 | #define MX51_INT_GPIO1_INT3 (NR_IRQS_LEGACY + 46) |
| 284 | #define MX51_INT_GPIO1_INT1 48 | 284 | #define MX51_INT_GPIO1_INT2 (NR_IRQS_LEGACY + 47) |
| 285 | #define MX51_INT_GPIO1_INT0 49 | 285 | #define MX51_INT_GPIO1_INT1 (NR_IRQS_LEGACY + 48) |
| 286 | #define MX51_INT_GPIO1_LOW 50 | 286 | #define MX51_INT_GPIO1_INT0 (NR_IRQS_LEGACY + 49) |
| 287 | #define MX51_INT_GPIO1_HIGH 51 | 287 | #define MX51_INT_GPIO1_LOW (NR_IRQS_LEGACY + 50) |
| 288 | #define MX51_INT_GPIO2_LOW 52 | 288 | #define MX51_INT_GPIO1_HIGH (NR_IRQS_LEGACY + 51) |
| 289 | #define MX51_INT_GPIO2_HIGH 53 | 289 | #define MX51_INT_GPIO2_LOW (NR_IRQS_LEGACY + 52) |
| 290 | #define MX51_INT_GPIO3_LOW 54 | 290 | #define MX51_INT_GPIO2_HIGH (NR_IRQS_LEGACY + 53) |
| 291 | #define MX51_INT_GPIO3_HIGH 55 | 291 | #define MX51_INT_GPIO3_LOW (NR_IRQS_LEGACY + 54) |
| 292 | #define MX51_INT_GPIO4_LOW 56 | 292 | #define MX51_INT_GPIO3_HIGH (NR_IRQS_LEGACY + 55) |
| 293 | #define MX51_INT_GPIO4_HIGH 57 | 293 | #define MX51_INT_GPIO4_LOW (NR_IRQS_LEGACY + 56) |
| 294 | #define MX51_INT_WDOG1 58 | 294 | #define MX51_INT_GPIO4_HIGH (NR_IRQS_LEGACY + 57) |
| 295 | #define MX51_INT_WDOG2 59 | 295 | #define MX51_INT_WDOG1 (NR_IRQS_LEGACY + 58) |
| 296 | #define MX51_INT_KPP 60 | 296 | #define MX51_INT_WDOG2 (NR_IRQS_LEGACY + 59) |
| 297 | #define MX51_INT_PWM1 61 | 297 | #define MX51_INT_KPP (NR_IRQS_LEGACY + 60) |
| 298 | #define MX51_INT_I2C1 62 | 298 | #define MX51_INT_PWM1 (NR_IRQS_LEGACY + 61) |
| 299 | #define MX51_INT_I2C2 63 | 299 | #define MX51_INT_I2C1 (NR_IRQS_LEGACY + 62) |
| 300 | #define MX51_INT_HS_I2C 64 | 300 | #define MX51_INT_I2C2 (NR_IRQS_LEGACY + 63) |
| 301 | #define MX51_INT_RESV65 65 | 301 | #define MX51_INT_HS_I2C (NR_IRQS_LEGACY + 64) |
| 302 | #define MX51_INT_RESV66 66 | 302 | #define MX51_INT_RESV65 (NR_IRQS_LEGACY + 65) |
| 303 | #define MX51_INT_SIM_IPB 67 | 303 | #define MX51_INT_RESV66 (NR_IRQS_LEGACY + 66) |
| 304 | #define MX51_INT_SIM_DAT 68 | 304 | #define MX51_INT_SIM_IPB (NR_IRQS_LEGACY + 67) |
| 305 | #define MX51_INT_IIM 69 | 305 | #define MX51_INT_SIM_DAT (NR_IRQS_LEGACY + 68) |
| 306 | #define MX51_INT_ATA 70 | 306 | #define MX51_INT_IIM (NR_IRQS_LEGACY + 69) |
| 307 | #define MX51_INT_CCM1 71 | 307 | #define MX51_INT_ATA (NR_IRQS_LEGACY + 70) |
| 308 | #define MX51_INT_CCM2 72 | 308 | #define MX51_INT_CCM1 (NR_IRQS_LEGACY + 71) |
| 309 | #define MX51_INT_GPC1 73 | 309 | #define MX51_INT_CCM2 (NR_IRQS_LEGACY + 72) |
| 310 | #define MX51_INT_GPC2 74 | 310 | #define MX51_INT_GPC1 (NR_IRQS_LEGACY + 73) |
| 311 | #define MX51_INT_SRC 75 | 311 | #define MX51_INT_GPC2 (NR_IRQS_LEGACY + 74) |
| 312 | #define MX51_INT_NM 76 | 312 | #define MX51_INT_SRC (NR_IRQS_LEGACY + 75) |
| 313 | #define MX51_INT_PMU 77 | 313 | #define MX51_INT_NM (NR_IRQS_LEGACY + 76) |
| 314 | #define MX51_INT_CTI_IRQ 78 | 314 | #define MX51_INT_PMU (NR_IRQS_LEGACY + 77) |
| 315 | #define MX51_INT_CTI1_TG0 79 | 315 | #define MX51_INT_CTI_IRQ (NR_IRQS_LEGACY + 78) |
| 316 | #define MX51_INT_CTI1_TG1 80 | 316 | #define MX51_INT_CTI1_TG0 (NR_IRQS_LEGACY + 79) |
| 317 | #define MX51_INT_MCG_ERR 81 | 317 | #define MX51_INT_CTI1_TG1 (NR_IRQS_LEGACY + 80) |
| 318 | #define MX51_INT_MCG_TMR 82 | 318 | #define MX51_INT_MCG_ERR (NR_IRQS_LEGACY + 81) |
| 319 | #define MX51_INT_MCG_FUNC 83 | 319 | #define MX51_INT_MCG_TMR (NR_IRQS_LEGACY + 82) |
| 320 | #define MX51_INT_GPU2_IRQ 84 | 320 | #define MX51_INT_MCG_FUNC (NR_IRQS_LEGACY + 83) |
| 321 | #define MX51_INT_GPU2_BUSY 85 | 321 | #define MX51_INT_GPU2_IRQ (NR_IRQS_LEGACY + 84) |
| 322 | #define MX51_INT_RESV86 86 | 322 | #define MX51_INT_GPU2_BUSY (NR_IRQS_LEGACY + 85) |
| 323 | #define MX51_INT_FEC 87 | 323 | #define MX51_INT_RESV86 (NR_IRQS_LEGACY + 86) |
| 324 | #define MX51_INT_OWIRE 88 | 324 | #define MX51_INT_FEC (NR_IRQS_LEGACY + 87) |
| 325 | #define MX51_INT_CTI1_TG2 89 | 325 | #define MX51_INT_OWIRE (NR_IRQS_LEGACY + 88) |
| 326 | #define MX51_INT_SJC 90 | 326 | #define MX51_INT_CTI1_TG2 (NR_IRQS_LEGACY + 89) |
| 327 | #define MX51_INT_SPDIF 91 | 327 | #define MX51_INT_SJC (NR_IRQS_LEGACY + 90) |
| 328 | #define MX51_INT_TVE 92 | 328 | #define MX51_INT_SPDIF (NR_IRQS_LEGACY + 91) |
| 329 | #define MX51_INT_FIRI 93 | 329 | #define MX51_INT_TVE (NR_IRQS_LEGACY + 92) |
| 330 | #define MX51_INT_PWM2 94 | 330 | #define MX51_INT_FIRI (NR_IRQS_LEGACY + 93) |
| 331 | #define MX51_INT_SLIM_EXP 95 | 331 | #define MX51_INT_PWM2 (NR_IRQS_LEGACY + 94) |
| 332 | #define MX51_INT_SSI3 96 | 332 | #define MX51_INT_SLIM_EXP (NR_IRQS_LEGACY + 95) |
| 333 | #define MX51_INT_EMI_BOOT 97 | 333 | #define MX51_INT_SSI3 (NR_IRQS_LEGACY + 96) |
| 334 | #define MX51_INT_CTI1_TG3 98 | 334 | #define MX51_INT_EMI_BOOT (NR_IRQS_LEGACY + 97) |
| 335 | #define MX51_INT_SMC_RX 99 | 335 | #define MX51_INT_CTI1_TG3 (NR_IRQS_LEGACY + 98) |
| 336 | #define MX51_INT_VPU_IDLE 100 | 336 | #define MX51_INT_SMC_RX (NR_IRQS_LEGACY + 99) |
| 337 | #define MX51_INT_EMI_NFC 101 | 337 | #define MX51_INT_VPU_IDLE (NR_IRQS_LEGACY + 100) |
| 338 | #define MX51_INT_GPU_IDLE 102 | 338 | #define MX51_INT_EMI_NFC (NR_IRQS_LEGACY + 101) |
| 339 | #define MX51_INT_GPU_IDLE (NR_IRQS_LEGACY + 102) | ||
| 339 | 340 | ||
| 340 | #if !defined(__ASSEMBLY__) && !defined(__MXC_BOOT_UNCOMPRESS) | 341 | #if !defined(__ASSEMBLY__) && !defined(__MXC_BOOT_UNCOMPRESS) |
| 341 | extern int mx51_revision(void); | 342 | extern int mx51_revision(void); |
diff --git a/arch/arm/plat-mxc/include/mach/mx53.h b/arch/arm/plat-mxc/include/mach/mx53.h index a37e8c353994..f829d1c22501 100644 --- a/arch/arm/plat-mxc/include/mach/mx53.h +++ b/arch/arm/plat-mxc/include/mach/mx53.h | |||
| @@ -229,113 +229,114 @@ | |||
| 229 | /* | 229 | /* |
| 230 | * Interrupt numbers | 230 | * Interrupt numbers |
| 231 | */ | 231 | */ |
| 232 | #define MX53_INT_RESV0 0 | 232 | #include <asm/irq.h> |
| 233 | #define MX53_INT_ESDHC1 1 | 233 | #define MX53_INT_RESV0 (NR_IRQS_LEGACY + 0) |
| 234 | #define MX53_INT_ESDHC2 2 | 234 | #define MX53_INT_ESDHC1 (NR_IRQS_LEGACY + 1) |
| 235 | #define MX53_INT_ESDHC3 3 | 235 | #define MX53_INT_ESDHC2 (NR_IRQS_LEGACY + 2) |
| 236 | #define MX53_INT_ESDHC4 4 | 236 | #define MX53_INT_ESDHC3 (NR_IRQS_LEGACY + 3) |
| 237 | #define MX53_INT_DAP 5 | 237 | #define MX53_INT_ESDHC4 (NR_IRQS_LEGACY + 4) |
| 238 | #define MX53_INT_SDMA 6 | 238 | #define MX53_INT_DAP (NR_IRQS_LEGACY + 5) |
| 239 | #define MX53_INT_IOMUX 7 | 239 | #define MX53_INT_SDMA (NR_IRQS_LEGACY + 6) |
| 240 | #define MX53_INT_NFC 8 | 240 | #define MX53_INT_IOMUX (NR_IRQS_LEGACY + 7) |
| 241 | #define MX53_INT_VPU 9 | 241 | #define MX53_INT_NFC (NR_IRQS_LEGACY + 8) |
| 242 | #define MX53_INT_IPU_ERR 10 | 242 | #define MX53_INT_VPU (NR_IRQS_LEGACY + 9) |
| 243 | #define MX53_INT_IPU_SYN 11 | 243 | #define MX53_INT_IPU_ERR (NR_IRQS_LEGACY + 10) |
| 244 | #define MX53_INT_GPU 12 | 244 | #define MX53_INT_IPU_SYN (NR_IRQS_LEGACY + 11) |
| 245 | #define MX53_INT_UART4 13 | 245 | #define MX53_INT_GPU (NR_IRQS_LEGACY + 12) |
| 246 | #define MX53_INT_USB_H1 14 | 246 | #define MX53_INT_UART4 (NR_IRQS_LEGACY + 13) |
| 247 | #define MX53_INT_EMI 15 | 247 | #define MX53_INT_USB_H1 (NR_IRQS_LEGACY + 14) |
| 248 | #define MX53_INT_USB_H2 16 | 248 | #define MX53_INT_EMI (NR_IRQS_LEGACY + 15) |
| 249 | #define MX53_INT_USB_H3 17 | 249 | #define MX53_INT_USB_H2 (NR_IRQS_LEGACY + 16) |
| 250 | #define MX53_INT_USB_OTG 18 | 250 | #define MX53_INT_USB_H3 (NR_IRQS_LEGACY + 17) |
| 251 | #define MX53_INT_SAHARA_H0 19 | 251 | #define MX53_INT_USB_OTG (NR_IRQS_LEGACY + 18) |
| 252 | #define MX53_INT_SAHARA_H1 20 | 252 | #define MX53_INT_SAHARA_H0 (NR_IRQS_LEGACY + 19) |
| 253 | #define MX53_INT_SCC_SMN 21 | 253 | #define MX53_INT_SAHARA_H1 (NR_IRQS_LEGACY + 20) |
| 254 | #define MX53_INT_SCC_STZ 22 | 254 | #define MX53_INT_SCC_SMN (NR_IRQS_LEGACY + 21) |
| 255 | #define MX53_INT_SCC_SCM 23 | 255 | #define MX53_INT_SCC_STZ (NR_IRQS_LEGACY + 22) |
| 256 | #define MX53_INT_SRTC_NTZ 24 | 256 | #define MX53_INT_SCC_SCM (NR_IRQS_LEGACY + 23) |
| 257 | #define MX53_INT_SRTC_TZ 25 | 257 | #define MX53_INT_SRTC_NTZ (NR_IRQS_LEGACY + 24) |
| 258 | #define MX53_INT_RTIC 26 | 258 | #define MX53_INT_SRTC_TZ (NR_IRQS_LEGACY + 25) |
| 259 | #define MX53_INT_CSU 27 | 259 | #define MX53_INT_RTIC (NR_IRQS_LEGACY + 26) |
| 260 | #define MX53_INT_SATA 28 | 260 | #define MX53_INT_CSU (NR_IRQS_LEGACY + 27) |
| 261 | #define MX53_INT_SSI1 29 | 261 | #define MX53_INT_SATA (NR_IRQS_LEGACY + 28) |
| 262 | #define MX53_INT_SSI2 30 | 262 | #define MX53_INT_SSI1 (NR_IRQS_LEGACY + 29) |
| 263 | #define MX53_INT_UART1 31 | 263 | #define MX53_INT_SSI2 (NR_IRQS_LEGACY + 30) |
| 264 | #define MX53_INT_UART2 32 | 264 | #define MX53_INT_UART1 (NR_IRQS_LEGACY + 31) |
| 265 | #define MX53_INT_UART3 33 | 265 | #define MX53_INT_UART2 (NR_IRQS_LEGACY + 32) |
| 266 | #define MX53_INT_RTC 34 | 266 | #define MX53_INT_UART3 (NR_IRQS_LEGACY + 33) |
| 267 | #define MX53_INT_PTP 35 | 267 | #define MX53_INT_RTC (NR_IRQS_LEGACY + 34) |
| 268 | #define MX53_INT_ECSPI1 36 | 268 | #define MX53_INT_PTP (NR_IRQS_LEGACY + 35) |
| 269 | #define MX53_INT_ECSPI2 37 | 269 | #define MX53_INT_ECSPI1 (NR_IRQS_LEGACY + 36) |
| 270 | #define MX53_INT_CSPI 38 | 270 | #define MX53_INT_ECSPI2 (NR_IRQS_LEGACY + 37) |
| 271 | #define MX53_INT_GPT 39 | 271 | #define MX53_INT_CSPI (NR_IRQS_LEGACY + 38) |
| 272 | #define MX53_INT_EPIT1 40 | 272 | #define MX53_INT_GPT (NR_IRQS_LEGACY + 39) |
| 273 | #define MX53_INT_EPIT2 41 | 273 | #define MX53_INT_EPIT1 (NR_IRQS_LEGACY + 40) |
| 274 | #define MX53_INT_GPIO1_INT7 42 | 274 | #define MX53_INT_EPIT2 (NR_IRQS_LEGACY + 41) |
| 275 | #define MX53_INT_GPIO1_INT6 43 | 275 | #define MX53_INT_GPIO1_INT7 (NR_IRQS_LEGACY + 42) |
| 276 | #define MX53_INT_GPIO1_INT5 44 | 276 | #define MX53_INT_GPIO1_INT6 (NR_IRQS_LEGACY + 43) |
| 277 | #define MX53_INT_GPIO1_INT4 45 | 277 | #define MX53_INT_GPIO1_INT5 (NR_IRQS_LEGACY + 44) |
| 278 | #define MX53_INT_GPIO1_INT3 46 | 278 | #define MX53_INT_GPIO1_INT4 (NR_IRQS_LEGACY + 45) |
| 279 | #define MX53_INT_GPIO1_INT2 47 | 279 | #define MX53_INT_GPIO1_INT3 (NR_IRQS_LEGACY + 46) |
| 280 | #define MX53_INT_GPIO1_INT1 48 | 280 | #define MX53_INT_GPIO1_INT2 (NR_IRQS_LEGACY + 47) |
| 281 | #define MX53_INT_GPIO1_INT0 49 | 281 | #define MX53_INT_GPIO1_INT1 (NR_IRQS_LEGACY + 48) |
| 282 | #define MX53_INT_GPIO1_LOW 50 | 282 | #define MX53_INT_GPIO1_INT0 (NR_IRQS_LEGACY + 49) |
| 283 | #define MX53_INT_GPIO1_HIGH 51 | 283 | #define MX53_INT_GPIO1_LOW (NR_IRQS_LEGACY + 50) |
| 284 | #define MX53_INT_GPIO2_LOW 52 | 284 | #define MX53_INT_GPIO1_HIGH (NR_IRQS_LEGACY + 51) |
| 285 | #define MX53_INT_GPIO2_HIGH 53 | 285 | #define MX53_INT_GPIO2_LOW (NR_IRQS_LEGACY + 52) |
| 286 | #define MX53_INT_GPIO3_LOW 54 | 286 | #define MX53_INT_GPIO2_HIGH (NR_IRQS_LEGACY + 53) |
| 287 | #define MX53_INT_GPIO3_HIGH 55 | 287 | #define MX53_INT_GPIO3_LOW (NR_IRQS_LEGACY + 54) |
| 288 | #define MX53_INT_GPIO4_LOW 56 | 288 | #define MX53_INT_GPIO3_HIGH (NR_IRQS_LEGACY + 55) |
| 289 | #define MX53_INT_GPIO4_HIGH 57 | 289 | #define MX53_INT_GPIO4_LOW (NR_IRQS_LEGACY + 56) |
| 290 | #define MX53_INT_WDOG1 58 | 290 | #define MX53_INT_GPIO4_HIGH (NR_IRQS_LEGACY + 57) |
| 291 | #define MX53_INT_WDOG2 59 | 291 | #define MX53_INT_WDOG1 (NR_IRQS_LEGACY + 58) |
| 292 | #define MX53_INT_KPP 60 | 292 | #define MX53_INT_WDOG2 (NR_IRQS_LEGACY + 59) |
| 293 | #define MX53_INT_PWM1 61 | 293 | #define MX53_INT_KPP (NR_IRQS_LEGACY + 60) |
| 294 | #define MX53_INT_I2C1 62 | 294 | #define MX53_INT_PWM1 (NR_IRQS_LEGACY + 61) |
| 295 | #define MX53_INT_I2C2 63 | 295 | #define MX53_INT_I2C1 (NR_IRQS_LEGACY + 62) |
| 296 | #define MX53_INT_I2C3 64 | 296 | #define MX53_INT_I2C2 (NR_IRQS_LEGACY + 63) |
| 297 | #define MX53_INT_MLB 65 | 297 | #define MX53_INT_I2C3 (NR_IRQS_LEGACY + 64) |
| 298 | #define MX53_INT_ASRC 66 | 298 | #define MX53_INT_MLB (NR_IRQS_LEGACY + 65) |
| 299 | #define MX53_INT_SPDIF 67 | 299 | #define MX53_INT_ASRC (NR_IRQS_LEGACY + 66) |
| 300 | #define MX53_INT_SIM_DAT 68 | 300 | #define MX53_INT_SPDIF (NR_IRQS_LEGACY + 67) |
| 301 | #define MX53_INT_IIM 69 | 301 | #define MX53_INT_SIM_DAT (NR_IRQS_LEGACY + 68) |
| 302 | #define MX53_INT_ATA 70 | 302 | #define MX53_INT_IIM (NR_IRQS_LEGACY + 69) |
| 303 | #define MX53_INT_CCM1 71 | 303 | #define MX53_INT_ATA (NR_IRQS_LEGACY + 70) |
| 304 | #define MX53_INT_CCM2 72 | 304 | #define MX53_INT_CCM1 (NR_IRQS_LEGACY + 71) |
| 305 | #define MX53_INT_GPC1 73 | 305 | #define MX53_INT_CCM2 (NR_IRQS_LEGACY + 72) |
| 306 | #define MX53_INT_GPC2 74 | 306 | #define MX53_INT_GPC1 (NR_IRQS_LEGACY + 73) |
| 307 | #define MX53_INT_SRC 75 | 307 | #define MX53_INT_GPC2 (NR_IRQS_LEGACY + 74) |
| 308 | #define MX53_INT_NM 76 | 308 | #define MX53_INT_SRC (NR_IRQS_LEGACY + 75) |
| 309 | #define MX53_INT_PMU 77 | 309 | #define MX53_INT_NM (NR_IRQS_LEGACY + 76) |
| 310 | #define MX53_INT_CTI_IRQ 78 | 310 | #define MX53_INT_PMU (NR_IRQS_LEGACY + 77) |
| 311 | #define MX53_INT_CTI1_TG0 79 | 311 | #define MX53_INT_CTI_IRQ (NR_IRQS_LEGACY + 78) |
| 312 | #define MX53_INT_CTI1_TG1 80 | 312 | #define MX53_INT_CTI1_TG0 (NR_IRQS_LEGACY + 79) |
| 313 | #define MX53_INT_ESAI 81 | 313 | #define MX53_INT_CTI1_TG1 (NR_IRQS_LEGACY + 80) |
| 314 | #define MX53_INT_CAN1 82 | 314 | #define MX53_INT_ESAI (NR_IRQS_LEGACY + 81) |
| 315 | #define MX53_INT_CAN2 83 | 315 | #define MX53_INT_CAN1 (NR_IRQS_LEGACY + 82) |
| 316 | #define MX53_INT_GPU2_IRQ 84 | 316 | #define MX53_INT_CAN2 (NR_IRQS_LEGACY + 83) |
| 317 | #define MX53_INT_GPU2_BUSY 85 | 317 | #define MX53_INT_GPU2_IRQ (NR_IRQS_LEGACY + 84) |
| 318 | #define MX53_INT_UART5 86 | 318 | #define MX53_INT_GPU2_BUSY (NR_IRQS_LEGACY + 85) |
| 319 | #define MX53_INT_FEC 87 | 319 | #define MX53_INT_UART5 (NR_IRQS_LEGACY + 86) |
| 320 | #define MX53_INT_OWIRE 88 | 320 | #define MX53_INT_FEC (NR_IRQS_LEGACY + 87) |
| 321 | #define MX53_INT_CTI1_TG2 89 | 321 | #define MX53_INT_OWIRE (NR_IRQS_LEGACY + 88) |
| 322 | #define MX53_INT_SJC 90 | 322 | #define MX53_INT_CTI1_TG2 (NR_IRQS_LEGACY + 89) |
| 323 | #define MX53_INT_TVE 92 | 323 | #define MX53_INT_SJC (NR_IRQS_LEGACY + 90) |
| 324 | #define MX53_INT_FIRI 93 | 324 | #define MX53_INT_TVE (NR_IRQS_LEGACY + 92) |
| 325 | #define MX53_INT_PWM2 94 | 325 | #define MX53_INT_FIRI (NR_IRQS_LEGACY + 93) |
| 326 | #define MX53_INT_SLIM_EXP 95 | 326 | #define MX53_INT_PWM2 (NR_IRQS_LEGACY + 94) |
| 327 | #define MX53_INT_SSI3 96 | 327 | #define MX53_INT_SLIM_EXP (NR_IRQS_LEGACY + 95) |
| 328 | #define MX53_INT_EMI_BOOT 97 | 328 | #define MX53_INT_SSI3 (NR_IRQS_LEGACY + 96) |
| 329 | #define MX53_INT_CTI1_TG3 98 | 329 | #define MX53_INT_EMI_BOOT (NR_IRQS_LEGACY + 97) |
| 330 | #define MX53_INT_SMC_RX 99 | 330 | #define MX53_INT_CTI1_TG3 (NR_IRQS_LEGACY + 98) |
| 331 | #define MX53_INT_VPU_IDLE 100 | 331 | #define MX53_INT_SMC_RX (NR_IRQS_LEGACY + 99) |
| 332 | #define MX53_INT_EMI_NFC 101 | 332 | #define MX53_INT_VPU_IDLE (NR_IRQS_LEGACY + 100) |
| 333 | #define MX53_INT_GPU_IDLE 102 | 333 | #define MX53_INT_EMI_NFC (NR_IRQS_LEGACY + 101) |
| 334 | #define MX53_INT_GPIO5_LOW 103 | 334 | #define MX53_INT_GPU_IDLE (NR_IRQS_LEGACY + 102) |
| 335 | #define MX53_INT_GPIO5_HIGH 104 | 335 | #define MX53_INT_GPIO5_LOW (NR_IRQS_LEGACY + 103) |
| 336 | #define MX53_INT_GPIO6_LOW 105 | 336 | #define MX53_INT_GPIO5_HIGH (NR_IRQS_LEGACY + 104) |
| 337 | #define MX53_INT_GPIO6_HIGH 106 | 337 | #define MX53_INT_GPIO6_LOW (NR_IRQS_LEGACY + 105) |
| 338 | #define MX53_INT_GPIO7_LOW 107 | 338 | #define MX53_INT_GPIO6_HIGH (NR_IRQS_LEGACY + 106) |
| 339 | #define MX53_INT_GPIO7_HIGH 108 | 339 | #define MX53_INT_GPIO7_LOW (NR_IRQS_LEGACY + 107) |
| 340 | #define MX53_INT_GPIO7_HIGH (NR_IRQS_LEGACY + 108) | ||
| 340 | 341 | ||
| 341 | #endif /* ifndef __MACH_MX53_H__ */ | 342 | #endif /* ifndef __MACH_MX53_H__ */ |
diff --git a/arch/arm/plat-mxc/tzic.c b/arch/arm/plat-mxc/tzic.c index 98308ec1f321..c60a7e416385 100644 --- a/arch/arm/plat-mxc/tzic.c +++ b/arch/arm/plat-mxc/tzic.c | |||
| @@ -15,6 +15,8 @@ | |||
| 15 | #include <linux/device.h> | 15 | #include <linux/device.h> |
| 16 | #include <linux/errno.h> | 16 | #include <linux/errno.h> |
| 17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
| 18 | #include <linux/irqdomain.h> | ||
| 19 | #include <linux/of.h> | ||
| 18 | 20 | ||
| 19 | #include <asm/mach/irq.h> | 21 | #include <asm/mach/irq.h> |
| 20 | #include <asm/exception.h> | 22 | #include <asm/exception.h> |
| @@ -49,6 +51,7 @@ | |||
| 49 | #define TZIC_ID0 0x0FD0 /* Indentification Register 0 */ | 51 | #define TZIC_ID0 0x0FD0 /* Indentification Register 0 */ |
| 50 | 52 | ||
| 51 | void __iomem *tzic_base; /* Used as irq controller base in entry-macro.S */ | 53 | void __iomem *tzic_base; /* Used as irq controller base in entry-macro.S */ |
| 54 | static struct irq_domain *domain; | ||
| 52 | 55 | ||
| 53 | #define TZIC_NUM_IRQS 128 | 56 | #define TZIC_NUM_IRQS 128 |
| 54 | 57 | ||
| @@ -77,15 +80,14 @@ static int tzic_set_irq_fiq(unsigned int irq, unsigned int type) | |||
| 77 | static void tzic_irq_suspend(struct irq_data *d) | 80 | static void tzic_irq_suspend(struct irq_data *d) |
| 78 | { | 81 | { |
| 79 | struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); | 82 | struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); |
| 80 | int idx = gc->irq_base >> 5; | 83 | int idx = d->hwirq >> 5; |
| 81 | 84 | ||
| 82 | __raw_writel(gc->wake_active, tzic_base + TZIC_WAKEUP0(idx)); | 85 | __raw_writel(gc->wake_active, tzic_base + TZIC_WAKEUP0(idx)); |
| 83 | } | 86 | } |
| 84 | 87 | ||
| 85 | static void tzic_irq_resume(struct irq_data *d) | 88 | static void tzic_irq_resume(struct irq_data *d) |
| 86 | { | 89 | { |
| 87 | struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); | 90 | int idx = d->hwirq >> 5; |
| 88 | int idx = gc->irq_base >> 5; | ||
| 89 | 91 | ||
| 90 | __raw_writel(__raw_readl(tzic_base + TZIC_ENSET0(idx)), | 92 | __raw_writel(__raw_readl(tzic_base + TZIC_ENSET0(idx)), |
| 91 | tzic_base + TZIC_WAKEUP0(idx)); | 93 | tzic_base + TZIC_WAKEUP0(idx)); |
| @@ -102,11 +104,10 @@ static struct mxc_extra_irq tzic_extra_irq = { | |||
| 102 | #endif | 104 | #endif |
| 103 | }; | 105 | }; |
| 104 | 106 | ||
| 105 | static __init void tzic_init_gc(unsigned int irq_start) | 107 | static __init void tzic_init_gc(int idx, unsigned int irq_start) |
| 106 | { | 108 | { |
| 107 | struct irq_chip_generic *gc; | 109 | struct irq_chip_generic *gc; |
| 108 | struct irq_chip_type *ct; | 110 | struct irq_chip_type *ct; |
| 109 | int idx = irq_start >> 5; | ||
| 110 | 111 | ||
| 111 | gc = irq_alloc_generic_chip("tzic", 1, irq_start, tzic_base, | 112 | gc = irq_alloc_generic_chip("tzic", 1, irq_start, tzic_base, |
| 112 | handle_level_irq); | 113 | handle_level_irq); |
| @@ -140,7 +141,8 @@ asmlinkage void __exception_irq_entry tzic_handle_irq(struct pt_regs *regs) | |||
| 140 | while (stat) { | 141 | while (stat) { |
| 141 | handled = 1; | 142 | handled = 1; |
| 142 | irqofs = fls(stat) - 1; | 143 | irqofs = fls(stat) - 1; |
| 143 | handle_IRQ(irqofs + i * 32, regs); | 144 | handle_IRQ(irq_find_mapping(domain, |
| 145 | irqofs + i * 32), regs); | ||
| 144 | stat &= ~(1 << irqofs); | 146 | stat &= ~(1 << irqofs); |
| 145 | } | 147 | } |
| 146 | } | 148 | } |
| @@ -154,6 +156,8 @@ asmlinkage void __exception_irq_entry tzic_handle_irq(struct pt_regs *regs) | |||
| 154 | */ | 156 | */ |
| 155 | void __init tzic_init_irq(void __iomem *irqbase) | 157 | void __init tzic_init_irq(void __iomem *irqbase) |
| 156 | { | 158 | { |
| 159 | struct device_node *np; | ||
| 160 | int irq_base; | ||
| 157 | int i; | 161 | int i; |
| 158 | 162 | ||
| 159 | tzic_base = irqbase; | 163 | tzic_base = irqbase; |
| @@ -175,12 +179,20 @@ void __init tzic_init_irq(void __iomem *irqbase) | |||
| 175 | 179 | ||
| 176 | /* all IRQ no FIQ Warning :: No selection */ | 180 | /* all IRQ no FIQ Warning :: No selection */ |
| 177 | 181 | ||
| 178 | for (i = 0; i < TZIC_NUM_IRQS; i += 32) | 182 | irq_base = irq_alloc_descs(-1, 0, TZIC_NUM_IRQS, numa_node_id()); |
| 179 | tzic_init_gc(i); | 183 | WARN_ON(irq_base < 0); |
| 184 | |||
| 185 | np = of_find_compatible_node(NULL, NULL, "fsl,tzic"); | ||
| 186 | domain = irq_domain_add_legacy(np, TZIC_NUM_IRQS, irq_base, 0, | ||
| 187 | &irq_domain_simple_ops, NULL); | ||
| 188 | WARN_ON(!domain); | ||
| 189 | |||
| 190 | for (i = 0; i < 4; i++, irq_base += 32) | ||
| 191 | tzic_init_gc(i, irq_base); | ||
| 180 | 192 | ||
| 181 | #ifdef CONFIG_FIQ | 193 | #ifdef CONFIG_FIQ |
| 182 | /* Initialize FIQ */ | 194 | /* Initialize FIQ */ |
| 183 | init_FIQ(); | 195 | init_FIQ(FIQ_START); |
| 184 | #endif | 196 | #endif |
| 185 | 197 | ||
| 186 | pr_info("TrustZone Interrupt Controller (TZIC) initialized\n"); | 198 | pr_info("TrustZone Interrupt Controller (TZIC) initialized\n"); |
diff --git a/arch/arm/plat-s3c24xx/irq.c b/arch/arm/plat-s3c24xx/irq.c index bc42c04091fd..fe57bbbf166b 100644 --- a/arch/arm/plat-s3c24xx/irq.c +++ b/arch/arm/plat-s3c24xx/irq.c | |||
| @@ -533,7 +533,7 @@ void __init s3c24xx_init_irq(void) | |||
| 533 | int i; | 533 | int i; |
| 534 | 534 | ||
| 535 | #ifdef CONFIG_FIQ | 535 | #ifdef CONFIG_FIQ |
| 536 | init_FIQ(); | 536 | init_FIQ(FIQ_START); |
| 537 | #endif | 537 | #endif |
| 538 | 538 | ||
| 539 | irqdbf("s3c2410_init_irq: clearing interrupt status flags\n"); | 539 | irqdbf("s3c2410_init_irq: clearing interrupt status flags\n"); |
diff --git a/drivers/dma/ipu/ipu_idmac.c b/drivers/dma/ipu/ipu_idmac.c index 5ec72044ea4c..c7573e50aa14 100644 --- a/drivers/dma/ipu/ipu_idmac.c +++ b/drivers/dma/ipu/ipu_idmac.c | |||
| @@ -1663,7 +1663,6 @@ static void __exit ipu_idmac_exit(struct ipu *ipu) | |||
| 1663 | 1663 | ||
| 1664 | static int __init ipu_probe(struct platform_device *pdev) | 1664 | static int __init ipu_probe(struct platform_device *pdev) |
| 1665 | { | 1665 | { |
| 1666 | struct ipu_platform_data *pdata = pdev->dev.platform_data; | ||
| 1667 | struct resource *mem_ipu, *mem_ic; | 1666 | struct resource *mem_ipu, *mem_ic; |
| 1668 | int ret; | 1667 | int ret; |
| 1669 | 1668 | ||
| @@ -1671,7 +1670,7 @@ static int __init ipu_probe(struct platform_device *pdev) | |||
| 1671 | 1670 | ||
| 1672 | mem_ipu = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1671 | mem_ipu = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| 1673 | mem_ic = platform_get_resource(pdev, IORESOURCE_MEM, 1); | 1672 | mem_ic = platform_get_resource(pdev, IORESOURCE_MEM, 1); |
| 1674 | if (!pdata || !mem_ipu || !mem_ic) | 1673 | if (!mem_ipu || !mem_ic) |
| 1675 | return -EINVAL; | 1674 | return -EINVAL; |
| 1676 | 1675 | ||
| 1677 | ipu_data.dev = &pdev->dev; | 1676 | ipu_data.dev = &pdev->dev; |
| @@ -1688,10 +1687,9 @@ static int __init ipu_probe(struct platform_device *pdev) | |||
| 1688 | goto err_noirq; | 1687 | goto err_noirq; |
| 1689 | 1688 | ||
| 1690 | ipu_data.irq_err = ret; | 1689 | ipu_data.irq_err = ret; |
| 1691 | ipu_data.irq_base = pdata->irq_base; | ||
| 1692 | 1690 | ||
| 1693 | dev_dbg(&pdev->dev, "fn irq %u, err irq %u, irq-base %u\n", | 1691 | dev_dbg(&pdev->dev, "fn irq %u, err irq %u\n", |
| 1694 | ipu_data.irq_fn, ipu_data.irq_err, ipu_data.irq_base); | 1692 | ipu_data.irq_fn, ipu_data.irq_err); |
| 1695 | 1693 | ||
| 1696 | /* Remap IPU common registers */ | 1694 | /* Remap IPU common registers */ |
| 1697 | ipu_data.reg_ipu = ioremap(mem_ipu->start, resource_size(mem_ipu)); | 1695 | ipu_data.reg_ipu = ioremap(mem_ipu->start, resource_size(mem_ipu)); |
diff --git a/drivers/dma/ipu/ipu_irq.c b/drivers/dma/ipu/ipu_irq.c index a71f55e72be9..fa95bcc3de1f 100644 --- a/drivers/dma/ipu/ipu_irq.c +++ b/drivers/dma/ipu/ipu_irq.c | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | #include <linux/clk.h> | 14 | #include <linux/clk.h> |
| 15 | #include <linux/irq.h> | 15 | #include <linux/irq.h> |
| 16 | #include <linux/io.h> | 16 | #include <linux/io.h> |
| 17 | #include <linux/module.h> | ||
| 17 | 18 | ||
| 18 | #include <mach/ipu.h> | 19 | #include <mach/ipu.h> |
| 19 | 20 | ||
| @@ -354,10 +355,12 @@ static struct irq_chip ipu_irq_chip = { | |||
| 354 | /* Install the IRQ handler */ | 355 | /* Install the IRQ handler */ |
| 355 | int __init ipu_irq_attach_irq(struct ipu *ipu, struct platform_device *dev) | 356 | int __init ipu_irq_attach_irq(struct ipu *ipu, struct platform_device *dev) |
| 356 | { | 357 | { |
| 357 | struct ipu_platform_data *pdata = dev->dev.platform_data; | 358 | unsigned int irq, i; |
| 358 | unsigned int irq, irq_base, i; | 359 | int irq_base = irq_alloc_descs(-1, 0, CONFIG_MX3_IPU_IRQS, |
| 360 | numa_node_id()); | ||
| 359 | 361 | ||
| 360 | irq_base = pdata->irq_base; | 362 | if (irq_base < 0) |
| 363 | return irq_base; | ||
| 361 | 364 | ||
| 362 | for (i = 0; i < IPU_IRQ_NR_BANKS; i++) | 365 | for (i = 0; i < IPU_IRQ_NR_BANKS; i++) |
| 363 | irq_bank[i].ipu = ipu; | 366 | irq_bank[i].ipu = ipu; |
| @@ -387,15 +390,16 @@ int __init ipu_irq_attach_irq(struct ipu *ipu, struct platform_device *dev) | |||
| 387 | irq_set_handler_data(ipu->irq_err, ipu); | 390 | irq_set_handler_data(ipu->irq_err, ipu); |
| 388 | irq_set_chained_handler(ipu->irq_err, ipu_irq_err); | 391 | irq_set_chained_handler(ipu->irq_err, ipu_irq_err); |
| 389 | 392 | ||
| 393 | ipu->irq_base = irq_base; | ||
| 394 | |||
| 390 | return 0; | 395 | return 0; |
| 391 | } | 396 | } |
| 392 | 397 | ||
| 393 | void ipu_irq_detach_irq(struct ipu *ipu, struct platform_device *dev) | 398 | void ipu_irq_detach_irq(struct ipu *ipu, struct platform_device *dev) |
| 394 | { | 399 | { |
| 395 | struct ipu_platform_data *pdata = dev->dev.platform_data; | ||
| 396 | unsigned int irq, irq_base; | 400 | unsigned int irq, irq_base; |
| 397 | 401 | ||
| 398 | irq_base = pdata->irq_base; | 402 | irq_base = ipu->irq_base; |
| 399 | 403 | ||
| 400 | irq_set_chained_handler(ipu->irq_fn, NULL); | 404 | irq_set_chained_handler(ipu->irq_fn, NULL); |
| 401 | irq_set_handler_data(ipu->irq_fn, NULL); | 405 | irq_set_handler_data(ipu->irq_fn, NULL); |
diff --git a/drivers/gpio/gpio-mxc.c b/drivers/gpio/gpio-mxc.c index c337143b18f8..e5db670d0002 100644 --- a/drivers/gpio/gpio-mxc.c +++ b/drivers/gpio/gpio-mxc.c | |||
| @@ -23,6 +23,7 @@ | |||
| 23 | #include <linux/interrupt.h> | 23 | #include <linux/interrupt.h> |
| 24 | #include <linux/io.h> | 24 | #include <linux/io.h> |
| 25 | #include <linux/irq.h> | 25 | #include <linux/irq.h> |
| 26 | #include <linux/irqdomain.h> | ||
| 26 | #include <linux/gpio.h> | 27 | #include <linux/gpio.h> |
| 27 | #include <linux/platform_device.h> | 28 | #include <linux/platform_device.h> |
| 28 | #include <linux/slab.h> | 29 | #include <linux/slab.h> |
| @@ -33,8 +34,6 @@ | |||
| 33 | #include <asm-generic/bug.h> | 34 | #include <asm-generic/bug.h> |
| 34 | #include <asm/mach/irq.h> | 35 | #include <asm/mach/irq.h> |
| 35 | 36 | ||
| 36 | #define irq_to_gpio(irq) ((irq) - MXC_GPIO_IRQ_START) | ||
| 37 | |||
| 38 | enum mxc_gpio_hwtype { | 37 | enum mxc_gpio_hwtype { |
| 39 | IMX1_GPIO, /* runs on i.mx1 */ | 38 | IMX1_GPIO, /* runs on i.mx1 */ |
| 40 | IMX21_GPIO, /* runs on i.mx21 and i.mx27 */ | 39 | IMX21_GPIO, /* runs on i.mx21 and i.mx27 */ |
| @@ -61,7 +60,7 @@ struct mxc_gpio_port { | |||
| 61 | void __iomem *base; | 60 | void __iomem *base; |
| 62 | int irq; | 61 | int irq; |
| 63 | int irq_high; | 62 | int irq_high; |
| 64 | int virtual_irq_start; | 63 | struct irq_domain *domain; |
| 65 | struct bgpio_chip bgc; | 64 | struct bgpio_chip bgc; |
| 66 | u32 both_edges; | 65 | u32 both_edges; |
| 67 | }; | 66 | }; |
| @@ -144,14 +143,15 @@ static LIST_HEAD(mxc_gpio_ports); | |||
| 144 | 143 | ||
| 145 | static int gpio_set_irq_type(struct irq_data *d, u32 type) | 144 | static int gpio_set_irq_type(struct irq_data *d, u32 type) |
| 146 | { | 145 | { |
| 147 | u32 gpio = irq_to_gpio(d->irq); | ||
| 148 | struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); | 146 | struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); |
| 149 | struct mxc_gpio_port *port = gc->private; | 147 | struct mxc_gpio_port *port = gc->private; |
| 150 | u32 bit, val; | 148 | u32 bit, val; |
| 149 | u32 gpio_idx = d->hwirq; | ||
| 150 | u32 gpio = port->bgc.gc.base + gpio_idx; | ||
| 151 | int edge; | 151 | int edge; |
| 152 | void __iomem *reg = port->base; | 152 | void __iomem *reg = port->base; |
| 153 | 153 | ||
| 154 | port->both_edges &= ~(1 << (gpio & 31)); | 154 | port->both_edges &= ~(1 << gpio_idx); |
| 155 | switch (type) { | 155 | switch (type) { |
| 156 | case IRQ_TYPE_EDGE_RISING: | 156 | case IRQ_TYPE_EDGE_RISING: |
| 157 | edge = GPIO_INT_RISE_EDGE; | 157 | edge = GPIO_INT_RISE_EDGE; |
| @@ -168,7 +168,7 @@ static int gpio_set_irq_type(struct irq_data *d, u32 type) | |||
| 168 | edge = GPIO_INT_HIGH_LEV; | 168 | edge = GPIO_INT_HIGH_LEV; |
| 169 | pr_debug("mxc: set GPIO %d to high trigger\n", gpio); | 169 | pr_debug("mxc: set GPIO %d to high trigger\n", gpio); |
| 170 | } | 170 | } |
| 171 | port->both_edges |= 1 << (gpio & 31); | 171 | port->both_edges |= 1 << gpio_idx; |
| 172 | break; | 172 | break; |
| 173 | case IRQ_TYPE_LEVEL_LOW: | 173 | case IRQ_TYPE_LEVEL_LOW: |
| 174 | edge = GPIO_INT_LOW_LEV; | 174 | edge = GPIO_INT_LOW_LEV; |
| @@ -180,11 +180,11 @@ static int gpio_set_irq_type(struct irq_data *d, u32 type) | |||
| 180 | return -EINVAL; | 180 | return -EINVAL; |
| 181 | } | 181 | } |
| 182 | 182 | ||
| 183 | reg += GPIO_ICR1 + ((gpio & 0x10) >> 2); /* lower or upper register */ | 183 | reg += GPIO_ICR1 + ((gpio_idx & 0x10) >> 2); /* ICR1 or ICR2 */ |
| 184 | bit = gpio & 0xf; | 184 | bit = gpio_idx & 0xf; |
| 185 | val = readl(reg) & ~(0x3 << (bit << 1)); | 185 | val = readl(reg) & ~(0x3 << (bit << 1)); |
| 186 | writel(val | (edge << (bit << 1)), reg); | 186 | writel(val | (edge << (bit << 1)), reg); |
| 187 | writel(1 << (gpio & 0x1f), port->base + GPIO_ISR); | 187 | writel(1 << gpio_idx, port->base + GPIO_ISR); |
| 188 | 188 | ||
| 189 | return 0; | 189 | return 0; |
| 190 | } | 190 | } |
| @@ -217,15 +217,13 @@ static void mxc_flip_edge(struct mxc_gpio_port *port, u32 gpio) | |||
| 217 | /* handle 32 interrupts in one status register */ | 217 | /* handle 32 interrupts in one status register */ |
| 218 | static void mxc_gpio_irq_handler(struct mxc_gpio_port *port, u32 irq_stat) | 218 | static void mxc_gpio_irq_handler(struct mxc_gpio_port *port, u32 irq_stat) |
| 219 | { | 219 | { |
| 220 | u32 gpio_irq_no_base = port->virtual_irq_start; | ||
| 221 | |||
| 222 | while (irq_stat != 0) { | 220 | while (irq_stat != 0) { |
| 223 | int irqoffset = fls(irq_stat) - 1; | 221 | int irqoffset = fls(irq_stat) - 1; |
| 224 | 222 | ||
| 225 | if (port->both_edges & (1 << irqoffset)) | 223 | if (port->both_edges & (1 << irqoffset)) |
| 226 | mxc_flip_edge(port, irqoffset); | 224 | mxc_flip_edge(port, irqoffset); |
| 227 | 225 | ||
| 228 | generic_handle_irq(gpio_irq_no_base + irqoffset); | 226 | generic_handle_irq(irq_find_mapping(port->domain, irqoffset)); |
| 229 | 227 | ||
| 230 | irq_stat &= ~(1 << irqoffset); | 228 | irq_stat &= ~(1 << irqoffset); |
| 231 | } | 229 | } |
| @@ -276,10 +274,9 @@ static void mx2_gpio_irq_handler(u32 irq, struct irq_desc *desc) | |||
| 276 | */ | 274 | */ |
| 277 | static int gpio_set_wake_irq(struct irq_data *d, u32 enable) | 275 | static int gpio_set_wake_irq(struct irq_data *d, u32 enable) |
| 278 | { | 276 | { |
| 279 | u32 gpio = irq_to_gpio(d->irq); | ||
| 280 | u32 gpio_idx = gpio & 0x1F; | ||
| 281 | struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); | 277 | struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); |
| 282 | struct mxc_gpio_port *port = gc->private; | 278 | struct mxc_gpio_port *port = gc->private; |
| 279 | u32 gpio_idx = d->hwirq; | ||
| 283 | 280 | ||
| 284 | if (enable) { | 281 | if (enable) { |
| 285 | if (port->irq_high && (gpio_idx >= 16)) | 282 | if (port->irq_high && (gpio_idx >= 16)) |
| @@ -296,12 +293,12 @@ static int gpio_set_wake_irq(struct irq_data *d, u32 enable) | |||
| 296 | return 0; | 293 | return 0; |
| 297 | } | 294 | } |
| 298 | 295 | ||
| 299 | static void __init mxc_gpio_init_gc(struct mxc_gpio_port *port) | 296 | static void __init mxc_gpio_init_gc(struct mxc_gpio_port *port, int irq_base) |
| 300 | { | 297 | { |
| 301 | struct irq_chip_generic *gc; | 298 | struct irq_chip_generic *gc; |
| 302 | struct irq_chip_type *ct; | 299 | struct irq_chip_type *ct; |
| 303 | 300 | ||
| 304 | gc = irq_alloc_generic_chip("gpio-mxc", 1, port->virtual_irq_start, | 301 | gc = irq_alloc_generic_chip("gpio-mxc", 1, irq_base, |
| 305 | port->base, handle_level_irq); | 302 | port->base, handle_level_irq); |
| 306 | gc->private = port; | 303 | gc->private = port; |
| 307 | 304 | ||
| @@ -352,7 +349,7 @@ static int mxc_gpio_to_irq(struct gpio_chip *gc, unsigned offset) | |||
| 352 | struct mxc_gpio_port *port = | 349 | struct mxc_gpio_port *port = |
| 353 | container_of(bgc, struct mxc_gpio_port, bgc); | 350 | container_of(bgc, struct mxc_gpio_port, bgc); |
| 354 | 351 | ||
| 355 | return port->virtual_irq_start + offset; | 352 | return irq_find_mapping(port->domain, offset); |
| 356 | } | 353 | } |
| 357 | 354 | ||
| 358 | static int __devinit mxc_gpio_probe(struct platform_device *pdev) | 355 | static int __devinit mxc_gpio_probe(struct platform_device *pdev) |
| @@ -360,6 +357,7 @@ static int __devinit mxc_gpio_probe(struct platform_device *pdev) | |||
| 360 | struct device_node *np = pdev->dev.of_node; | 357 | struct device_node *np = pdev->dev.of_node; |
| 361 | struct mxc_gpio_port *port; | 358 | struct mxc_gpio_port *port; |
| 362 | struct resource *iores; | 359 | struct resource *iores; |
| 360 | int irq_base; | ||
| 363 | int err; | 361 | int err; |
| 364 | 362 | ||
| 365 | mxc_gpio_get_hw(pdev); | 363 | mxc_gpio_get_hw(pdev); |
| @@ -430,20 +428,30 @@ static int __devinit mxc_gpio_probe(struct platform_device *pdev) | |||
| 430 | if (err) | 428 | if (err) |
| 431 | goto out_bgpio_remove; | 429 | goto out_bgpio_remove; |
| 432 | 430 | ||
| 433 | /* | 431 | irq_base = irq_alloc_descs(-1, 0, 32, numa_node_id()); |
| 434 | * In dt case, we use gpio number range dynamically | 432 | if (irq_base < 0) { |
| 435 | * allocated by gpio core. | 433 | err = irq_base; |
| 436 | */ | 434 | goto out_gpiochip_remove; |
| 437 | port->virtual_irq_start = MXC_GPIO_IRQ_START + (np ? port->bgc.gc.base : | 435 | } |
| 438 | pdev->id * 32); | 436 | |
| 437 | port->domain = irq_domain_add_legacy(np, 32, irq_base, 0, | ||
| 438 | &irq_domain_simple_ops, NULL); | ||
| 439 | if (!port->domain) { | ||
| 440 | err = -ENODEV; | ||
| 441 | goto out_irqdesc_free; | ||
| 442 | } | ||
| 439 | 443 | ||
| 440 | /* gpio-mxc can be a generic irq chip */ | 444 | /* gpio-mxc can be a generic irq chip */ |
| 441 | mxc_gpio_init_gc(port); | 445 | mxc_gpio_init_gc(port, irq_base); |
| 442 | 446 | ||
| 443 | list_add_tail(&port->node, &mxc_gpio_ports); | 447 | list_add_tail(&port->node, &mxc_gpio_ports); |
| 444 | 448 | ||
| 445 | return 0; | 449 | return 0; |
| 446 | 450 | ||
| 451 | out_irqdesc_free: | ||
| 452 | irq_free_descs(irq_base, 32); | ||
| 453 | out_gpiochip_remove: | ||
| 454 | WARN_ON(gpiochip_remove(&port->bgc.gc) < 0); | ||
| 447 | out_bgpio_remove: | 455 | out_bgpio_remove: |
| 448 | bgpio_remove(&port->bgc); | 456 | bgpio_remove(&port->bgc); |
| 449 | out_iounmap: | 457 | out_iounmap: |
diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c index 8d6b504d65c4..370031ac8200 100644 --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c | |||
| @@ -53,7 +53,6 @@ | |||
| 53 | #include <linux/of_i2c.h> | 53 | #include <linux/of_i2c.h> |
| 54 | #include <linux/pinctrl/consumer.h> | 54 | #include <linux/pinctrl/consumer.h> |
| 55 | 55 | ||
| 56 | #include <mach/irqs.h> | ||
| 57 | #include <mach/hardware.h> | 56 | #include <mach/hardware.h> |
| 58 | #include <mach/i2c.h> | 57 | #include <mach/i2c.h> |
| 59 | 58 | ||
diff --git a/drivers/media/video/mx1_camera.c b/drivers/media/video/mx1_camera.c index 4296a8350298..d2e6f82ecfac 100644 --- a/drivers/media/video/mx1_camera.c +++ b/drivers/media/video/mx1_camera.c | |||
| @@ -43,6 +43,7 @@ | |||
| 43 | #include <asm/fiq.h> | 43 | #include <asm/fiq.h> |
| 44 | #include <mach/dma-mx1-mx2.h> | 44 | #include <mach/dma-mx1-mx2.h> |
| 45 | #include <mach/hardware.h> | 45 | #include <mach/hardware.h> |
| 46 | #include <mach/irqs.h> | ||
| 46 | #include <mach/mx1_camera.h> | 47 | #include <mach/mx1_camera.h> |
| 47 | 48 | ||
| 48 | /* | 49 | /* |
diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c index 4ef747307ecb..d5c689d6217e 100644 --- a/drivers/tty/serial/imx.c +++ b/drivers/tty/serial/imx.c | |||
| @@ -169,7 +169,6 @@ | |||
| 169 | #define SERIAL_IMX_MAJOR 207 | 169 | #define SERIAL_IMX_MAJOR 207 |
| 170 | #define MINOR_START 16 | 170 | #define MINOR_START 16 |
| 171 | #define DEV_NAME "ttymxc" | 171 | #define DEV_NAME "ttymxc" |
| 172 | #define MAX_INTERNAL_IRQ MXC_INTERNAL_IRQS | ||
| 173 | 172 | ||
| 174 | /* | 173 | /* |
| 175 | * This determines how often we check the modem status signals | 174 | * This determines how often we check the modem status signals |
| @@ -741,10 +740,7 @@ static int imx_startup(struct uart_port *port) | |||
| 741 | 740 | ||
| 742 | /* do not use RTS IRQ on IrDA */ | 741 | /* do not use RTS IRQ on IrDA */ |
| 743 | if (!USE_IRDA(sport)) { | 742 | if (!USE_IRDA(sport)) { |
| 744 | retval = request_irq(sport->rtsirq, imx_rtsint, | 743 | retval = request_irq(sport->rtsirq, imx_rtsint, 0, |
| 745 | (sport->rtsirq < MAX_INTERNAL_IRQ) ? 0 : | ||
| 746 | IRQF_TRIGGER_FALLING | | ||
| 747 | IRQF_TRIGGER_RISING, | ||
| 748 | DRIVER_NAME, sport); | 744 | DRIVER_NAME, sport); |
| 749 | if (retval) | 745 | if (retval) |
| 750 | goto error_out3; | 746 | goto error_out3; |
diff --git a/sound/soc/fsl/imx-pcm-fiq.c b/sound/soc/fsl/imx-pcm-fiq.c index 456b7d723d66..ee27ba3933bd 100644 --- a/sound/soc/fsl/imx-pcm-fiq.c +++ b/sound/soc/fsl/imx-pcm-fiq.c | |||
| @@ -29,6 +29,7 @@ | |||
| 29 | 29 | ||
| 30 | #include <asm/fiq.h> | 30 | #include <asm/fiq.h> |
| 31 | 31 | ||
| 32 | #include <mach/irqs.h> | ||
| 32 | #include <mach/ssi.h> | 33 | #include <mach/ssi.h> |
| 33 | 34 | ||
| 34 | #include "imx-ssi.h" | 35 | #include "imx-ssi.h" |
