Skip to contentSkip to conversation

Clean up hardcoded IRQs for mach-omap2, enable SPARSE_IRQ, plaform_data/gpio-omap.h

PATCH In review Tony Lindgren 5 participants 26 messages Aug 31, 2012 – Sep 6, 2012

Subsystems (20)
lore
Share & tools
lore

Tony Lindgren

author maintainer
#0 lore raw

cover Clean up hardcoded IRQs for mach-omap2, enable SPARSE_IRQ, plaform_data/gpio-omap.h

Hi all,

Here's the first set of omap header clean-up patches needed for single zImage support. This series is based v3.6-rc3 and the following patches to avoid merge conflicts with the includes:

- Arnd's patch "ARM: omap: move platform_data definitions"
- Igor's series "ARM: OMAP: cleanup plat/board.h file"
- Afzal's series "Prepare for GPMC driver conversion (w.r.t MTD)"

Regards,

Tony

---

Tony Lindgren (9):
ARM: OMAP1: Move define of OMAP_LCD_DMA to dma.h
ARM: OMAP1: Define OMAP1_INT_I2C locally
ARM: OMAP2+: Make INTCPS_NR_IRQS local for mach-omap2/irq.c
ARM: OMAP2+: Remove unused nand_irq for GPMC
ARM: OMAP2+: Remove hardcoded twl4030 gpio_base, irq_base and irq_end
ARM: OMAP: Move gpio.h to include/linux/platform_data
ARM: OMAP2+: Prepare for irqs.h removal
ARM: OMAP2+: Remove hardcoded IRQs and enable SPARSE_IRQ
ARM: OMAP1: Move plat/irqs.h to mach/irqs.h

 arch/arm/mach-omap1/ams-delta-fiq-handler.S        |    1 
 arch/arm/mach-omap1/board-ams-delta.c              |    3 
 arch/arm/mach-omap1/board-osk.c                    |    1 
 arch/arm/mach-omap1/dma.c                          |    3 
 arch/arm/mach-omap1/gpio15xx.c                     |    1 
 arch/arm/mach-omap1/gpio16xx.c                     |    1 
 arch/arm/mach-omap1/gpio7xx.c                      |    1 
 arch/arm/mach-omap1/include/mach/ams-delta-fiq.h   |    2 
 arch/arm/mach-omap1/include/mach/gpio.h            |    2 
 arch/arm/mach-omap1/include/mach/irqs.h            |  267 ++++++++++++
 arch/arm/mach-omap1/leds-h2p2-debug.c              |    4 
 arch/arm/mach-omap1/leds.c                         |    1 
 arch/arm/mach-omap2/board-2430sdp.c                |   10 
 arch/arm/mach-omap2/board-3430sdp.c                |    3 
 arch/arm/mach-omap2/board-4430sdp.c                |    3 
 arch/arm/mach-omap2/board-am3517evm.c              |   12 -
 arch/arm/mach-omap2/board-cm-t35.c                 |   15 -
 arch/arm/mach-omap2/board-cm-t3517.c               |    6 
 arch/arm/mach-omap2/board-devkit8000.c             |    3 
 arch/arm/mach-omap2/board-flash.c                  |    3 
 arch/arm/mach-omap2/board-igep0020.c               |   10 
 arch/arm/mach-omap2/board-ldp.c                    |    3 
 arch/arm/mach-omap2/board-n8x0.c                   |    3 
 arch/arm/mach-omap2/board-omap3beagle.c            |    3 
 arch/arm/mach-omap2/board-omap3evm.c               |    3 
 arch/arm/mach-omap2/board-omap3logic.c             |    3 
 arch/arm/mach-omap2/board-omap3pandora.c           |    3 
 arch/arm/mach-omap2/board-omap3stalker.c           |    3 
 arch/arm/mach-omap2/board-omap3touchbook.c         |    3 
 arch/arm/mach-omap2/board-omap4panda.c             |    3 
 arch/arm/mach-omap2/board-overo.c                  |    3 
 arch/arm/mach-omap2/board-rm680.c                  |    9 
 arch/arm/mach-omap2/board-rx51-peripherals.c       |    5 
 arch/arm/mach-omap2/board-ti8168evm.c              |    3 
 arch/arm/mach-omap2/board-zoom-debugboard.c        |    1 
 arch/arm/mach-omap2/board-zoom-display.c           |    6 
 arch/arm/mach-omap2/board-zoom-peripherals.c       |    9 
 arch/arm/mach-omap2/cpuidle34xx.c                  |    1 
 arch/arm/mach-omap2/devices.c                      |    7 
 arch/arm/mach-omap2/gpio.c                         |    1 
 arch/arm/mach-omap2/gpmc-smc91x.c                  |    1 
 arch/arm/mach-omap2/gpmc.c                         |   11 
 arch/arm/mach-omap2/hsmmc.c                        |    5 
 arch/arm/mach-omap2/include/mach/gpio.h            |    2 
 arch/arm/mach-omap2/include/mach/irqs.h            |    2 
 arch/arm/mach-omap2/io.c                           |    2 
 arch/arm/mach-omap2/irq.c                          |    2 
 arch/arm/mach-omap2/mailbox.c                      |    3 
 arch/arm/mach-omap2/mcbsp.c                        |    1 
 arch/arm/mach-omap2/msdi.c                         |    1 
 arch/arm/mach-omap2/omap-iommu.c                   |    1 
 arch/arm/mach-omap2/omap-wakeupgen.c               |    1 
 arch/arm/mach-omap2/omap4-common.c                 |    7 
 arch/arm/mach-omap2/omap_hwmod_2420_data.c         |    2 
 arch/arm/mach-omap2/omap_hwmod_2430_data.c         |    9 
 .../mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c |   12 -
 arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c |    4 
 arch/arm/mach-omap2/omap_hwmod_3xxx_data.c         |   33 +
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c         |    6 
 arch/arm/mach-omap2/omap_l3_noc.c                  |    6 
 arch/arm/mach-omap2/omap_phy_internal.c            |    2 
 arch/arm/mach-omap2/pm24xx.c                       |    3 
 arch/arm/mach-omap2/pm34xx.c                       |    2 
 arch/arm/mach-omap2/prcm.c                         |    1 
 arch/arm/mach-omap2/prm2xxx_3xxx.c                 |    3 
 arch/arm/mach-omap2/prm44xx.c                      |    4 
 arch/arm/mach-omap2/prm_common.c                   |    1 
 arch/arm/mach-omap2/serial.c                       |    1 
 arch/arm/mach-omap2/timer.c                        |   10 
 arch/arm/mach-omap2/twl-common.c                   |    3 
 arch/arm/mach-omap2/twl-common.h                   |    6 
 arch/arm/mach-omap2/usb-host.c                     |    1 
 arch/arm/mach-omap2/usb-musb.c                     |    1 
 arch/arm/plat-omap/Kconfig                         |    1 
 arch/arm/plat-omap/i2c.c                           |    3 
 arch/arm/plat-omap/include/plat/dma.h              |    2 
 arch/arm/plat-omap/include/plat/irqs-44xx.h        |  144 ------
 arch/arm/plat-omap/include/plat/irqs.h             |  453 --------------------
 arch/arm/plat-omap/include/plat/omap44xx.h         |    1 
 drivers/dma/omap-dma.c                             |    2 
 drivers/gpio/gpio-omap.c                           |   15 -
 drivers/gpio/gpio-twl4030.c                        |   15 -
 drivers/mfd/twl-core.c                             |    2 
 drivers/mtd/nand/ams-delta.c                       |    8 
 drivers/mtd/onenand/omap2.c                        |    8 
 drivers/tty/serial/8250/8250.c                     |    4 
 drivers/video/omap2/dss/dispc.c                    |    1 
 drivers/video/omap2/omapfb/omapfb-main.c           |    4 
 include/linux/i2c/twl.h                            |    3 
 include/linux/mfd/twl6040.h                        |    2 
 include/linux/platform_data/gpio-omap.h            |   15 -
 include/linux/platform_data/mtd-nand-omap2.h       |    1 
 sound/soc/omap/mcbsp.c                             |    3 
 sound/soc/omap/omap-mcbsp.c                        |    1 
 sound/soc/omap/omap-pcm.c                          |    1 
 sound/soc/omap/sdp3430.c                           |    1 
 96 files changed, 455 insertions(+), 808 deletions(-)
 delete mode 100644 arch/arm/plat-omap/include/plat/irqs-44xx.h
 delete mode 100644 arch/arm/plat-omap/include/plat/irqs.h
 rename arch/arm/plat-omap/include/plat/gpio.h => include/linux/platform_data/gpio-omap.h (94%)
Signature · 1 line
Signature
author maintainer
#1 lore raw

PATCH 1/9 ARM: OMAP1: Move define of OMAP_LCD_DMA to dma.h

This is needed to start removing hardcoded IRQs on omap2+.

---
 arch/arm/plat-omap/include/plat/dma.h  |    2 ++
 arch/arm/plat-omap/include/plat/irqs.h |    1 -
 2 files changed, 2 insertions(+), 1 deletion(-)
arch/arm/plat-omap/include/plat/dma.h +2 -0
index c5811d4..0a87b05 100644
@@ -31,6 +31,8 @@
 /* Move omap4 specific defines to dma-44xx.h */
 #include "dma-44xx.h"
 
+#define INT_DMA_LCD			25
+
 /* DMA channels for omap1 */
 #define OMAP_DMA_NO_DEVICE		0
 #define OMAP_DMA_MCSI1_TX		1
arch/arm/plat-omap/include/plat/irqs.h +0 -1
index 37bbbbb..15f497c 100644
@@ -53,7 +53,6 @@
 #define INT_DMA_CH3		22
 #define INT_DMA_CH4		23
 #define INT_DMA_CH5		24
-#define INT_DMA_LCD		25
 #define INT_TIMER1		26
 #define INT_WD_TIMER		27
 #define INT_BRIDGE_PUB		28
author maintainer
#2 lore raw

PATCH 2/9 ARM: OMAP1: Define OMAP1_INT_I2C locally

In reply to Tony Lindgren

This is needed to start removing hardcoded IRQs for omap2+.

---
 arch/arm/plat-omap/i2c.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
arch/arm/plat-omap/i2c.c +2 -1
index db071bc..40bc06a 100644
@@ -39,6 +39,7 @@
 
 #define OMAP_I2C_SIZE		0x3f
 #define OMAP1_I2C_BASE		0xfffb3800
+#define OMAP1_INT_I2C		(32 + 4)
 
 static const char name[] = "omap_i2c";
 
@@ -105,7 +106,7 @@ static inline int omap1_i2c_add_bus(int bus_id)
 	res = pdev->resource;
 	res[0].start = OMAP1_I2C_BASE;
 	res[0].end = res[0].start + OMAP_I2C_SIZE;
-	res[1].start = INT_I2C;
+	res[1].start = OMAP1_INT_I2C;
 	pdata = &i2c_pdata[bus_id - 1];
 
 	/* all OMAP1 have IP version 1 register set */
author maintainer
#3 lore raw

PATCH 3/9 ARM: OMAP2+: Make INTCPS_NR_IRQS local for mach-omap2/irq.c

In reply to Tony Lindgren

Make INTCPS_NR_IRQS local for mach-omap2/irq.c

---
 arch/arm/mach-omap2/irq.c              |    2 ++
 arch/arm/plat-omap/include/plat/irqs.h |    3 ---
 2 files changed, 2 insertions(+), 3 deletions(-)
arch/arm/mach-omap2/irq.c +2 -0
index bcd83db..ac59f96 100644
@@ -49,6 +49,8 @@
 #define OMAP3_IRQ_BASE		OMAP2_L4_IO_ADDRESS(OMAP34XX_IC_BASE)
 #define INTCPS_SIR_IRQ_OFFSET	0x0040	/* omap2/3 active interrupt offset */
 #define ACTIVEIRQ_MASK		0x7f	/* omap2/3 active interrupt bits */
+#define INTCPS_NR_MIR_REGS	3
+#define INTCPS_NR_IRQS		96
 
 /*
  * OMAP2 has a number of different interrupt controllers, each interrupt
arch/arm/plat-omap/include/plat/irqs.h +0 -3
index 15f497c..fc3959c 100644
@@ -440,9 +440,6 @@
 
 #define OMAP_IRQ_BIT(irq)	(1 << ((irq) % 32))
 
-#define INTCPS_NR_MIR_REGS	3
-#define INTCPS_NR_IRQS		96
-
 #include <mach/hardware.h>
 
 #ifdef CONFIG_FIQ
author maintainer
#4 lore raw

PATCH 4/9 ARM: OMAP2+: Remove unused nand_irq for GPMC

In reply to Tony Lindgren

This is no longer needed and assumes a fixed IRQ number that won't work with SPARSE_IRQ.

---
 arch/arm/mach-omap2/board-flash.c            |    1 -
 include/linux/platform_data/mtd-nand-omap2.h |    1 -
 2 files changed, 2 deletions(-)
arch/arm/mach-omap2/board-flash.c +0 -1
index a1ef5f0..c8d4382 100644
@@ -140,7 +140,6 @@ __init board_nand_init(struct mtd_partition *nand_parts,
 	board_nand_data.devsize		= nand_type;
 
 	board_nand_data.ecc_opt = OMAP_ECC_HAMMING_CODE_DEFAULT;
-	board_nand_data.gpmc_irq = OMAP_GPMC_IRQ_BASE + cs;
 	gpmc_nand_init(&board_nand_data);
 }
 #endif /* CONFIG_MTD_NAND_OMAP2 || CONFIG_MTD_NAND_OMAP2_MODULE */
include/linux/platform_data/mtd-nand-omap2.h +0 -1
index 290cef5..1a68c1e 100644
@@ -24,7 +24,6 @@ struct omap_nand_platform_data {
 	struct gpmc_timings	*gpmc_t;
 	int			nr_parts;
 	bool			dev_ready;
-	int			gpmc_irq;
 	enum nand_io		xfer_type;
 	int			devsize;
 	enum omap_ecc           ecc_opt;
#5 lore raw

PATCH 4/9 ARM: OMAP2+: Remove unused nand_irq for GPMC

Hi Tony,

Quoted 2 lines · Tony Lindgren

This is no longer needed and assumes a fixed IRQ number that won't work with SPARSE_IRQ.

This cleanup was overlooked in mtd gpmc driver
preparation series

Regards
Afzal

author maintainer
#6 lore raw

PATCH 5/9 ARM: OMAP2+: Remove hardcoded twl4030 gpio_base, irq_base and irq_end

In reply to Tony Lindgren

We can't use hardcoded interrupts for SPARSE_IRQ, and can replace the hardcoded gpio_base with twl_gpiochip.base after it's been allocated.

Cc Grant Likely <[email protected]>
Cc Linus Walleij <[email protected]>
Cc Samuel Ortiz <[email protected]>
Cc Peter Ujfalusi <[email protected]>
---
 arch/arm/mach-omap2/board-2430sdp.c          |    3 ---
 arch/arm/mach-omap2/board-3430sdp.c          |    3 ---
 arch/arm/mach-omap2/board-4430sdp.c          |    1 -
 arch/arm/mach-omap2/board-cm-t35.c           |    3 ---
 arch/arm/mach-omap2/board-devkit8000.c       |    3 ---
 arch/arm/mach-omap2/board-igep0020.c         |    3 ---
 arch/arm/mach-omap2/board-ldp.c              |    3 ---
 arch/arm/mach-omap2/board-omap3beagle.c      |    3 ---
 arch/arm/mach-omap2/board-omap3evm.c         |    3 ---
 arch/arm/mach-omap2/board-omap3logic.c       |    3 ---
 arch/arm/mach-omap2/board-omap3pandora.c     |    3 ---
 arch/arm/mach-omap2/board-omap3stalker.c     |    3 ---
 arch/arm/mach-omap2/board-omap3touchbook.c   |    3 ---
 arch/arm/mach-omap2/board-omap4panda.c       |    1 -
 arch/arm/mach-omap2/board-overo.c            |    3 ---
 arch/arm/mach-omap2/board-rm680.c            |    3 ---
 arch/arm/mach-omap2/board-rx51-peripherals.c |    3 ---
 arch/arm/mach-omap2/board-zoom-peripherals.c |    3 ---
 drivers/gpio/gpio-twl4030.c                  |   15 ++++++++++-----
 include/linux/i2c/twl.h                      |    3 ---
 include/linux/mfd/twl6040.h                  |    2 --
 21 files changed, 10 insertions(+), 60 deletions(-)
arch/arm/mach-omap2/board-2430sdp.c +0 -3
index 36eee4b..cacc498 100644
@@ -211,9 +211,6 @@ static struct regulator_init_data sdp2430_vmmc1 = {
 };
 
 static struct twl4030_gpio_platform_data sdp2430_gpio_data = {
-	.gpio_base	= OMAP_MAX_GPIO_LINES,
-	.irq_base	= TWL4030_GPIO_IRQ_BASE,
-	.irq_end	= TWL4030_GPIO_IRQ_END,
 };
 
 static struct twl4030_platform_data sdp2430_twldata = {
arch/arm/mach-omap2/board-3430sdp.c +0 -3
index dac5cdf..5fd3934 100644
@@ -229,9 +229,6 @@ static int sdp3430_twl_gpio_setup(struct device *dev,
 }
 
 static struct twl4030_gpio_platform_data sdp3430_gpio_data = {
-	.gpio_base	= OMAP_MAX_GPIO_LINES,
-	.irq_base	= TWL4030_GPIO_IRQ_BASE,
-	.irq_end	= TWL4030_GPIO_IRQ_END,
 	.pulldowns	= BIT(2) | BIT(6) | BIT(8) | BIT(13)
 				| BIT(16) | BIT(17),
 	.setup		= sdp3430_twl_gpio_setup,
arch/arm/mach-omap2/board-4430sdp.c +0 -1
index 04e8574..ee82604 100644
@@ -543,7 +543,6 @@ static struct twl6040_platform_data twl6040_data = {
 	.codec		= &twl6040_codec,
 	.vibra		= &twl6040_vibra,
 	.audpwron_gpio	= 127,
-	.irq_base	= TWL6040_CODEC_IRQ_BASE,
 };
 
 static struct twl4030_platform_data sdp4430_twldata = {
arch/arm/mach-omap2/board-cm-t35.c +0 -3
index 6e20b82..ad83654 100644
@@ -469,9 +469,6 @@ static int cm_t35_twl_gpio_setup(struct device *dev, unsigned gpio,
 }
 
 static struct twl4030_gpio_platform_data cm_t35_gpio_data = {
-	.gpio_base	= OMAP_MAX_GPIO_LINES,
-	.irq_base	= TWL4030_GPIO_IRQ_BASE,
-	.irq_end	= TWL4030_GPIO_IRQ_END,
 	.setup          = cm_t35_twl_gpio_setup,
 };
 
arch/arm/mach-omap2/board-devkit8000.c +0 -3
index 214be52..d96eab5 100644
@@ -235,9 +235,6 @@ static int devkit8000_twl_gpio_setup(struct device *dev,
 }
 
 static struct twl4030_gpio_platform_data devkit8000_gpio_data = {
-	.gpio_base	= OMAP_MAX_GPIO_LINES,
-	.irq_base	= TWL4030_GPIO_IRQ_BASE,
-	.irq_end	= TWL4030_GPIO_IRQ_END,
 	.use_leds	= true,
 	.pulldowns	= BIT(1) | BIT(2) | BIT(6) | BIT(8) | BIT(13)
 				| BIT(15) | BIT(16) | BIT(17),
arch/arm/mach-omap2/board-igep0020.c +0 -3
index 7a3e536..0b9677b 100644
@@ -424,9 +424,6 @@ static int igep_twl_gpio_setup(struct device *dev,
 };
 
 static struct twl4030_gpio_platform_data igep_twl4030_gpio_pdata = {
-	.gpio_base	= OMAP_MAX_GPIO_LINES,
-	.irq_base	= TWL4030_GPIO_IRQ_BASE,
-	.irq_end	= TWL4030_GPIO_IRQ_END,
 	.use_leds	= true,
 	.setup		= igep_twl_gpio_setup,
 };
arch/arm/mach-omap2/board-ldp.c +0 -3
index dc41435..e85323c86 100644
@@ -274,9 +274,6 @@ static int ldp_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio)
 }
 
 static struct twl4030_gpio_platform_data ldp_gpio_data = {
-	.gpio_base	= OMAP_MAX_GPIO_LINES,
-	.irq_base	= TWL4030_GPIO_IRQ_BASE,
-	.irq_end	= TWL4030_GPIO_IRQ_END,
 	.setup		= ldp_twl_gpio_setup,
 };
 
arch/arm/mach-omap2/board-omap3beagle.c +0 -3
index d74eb37..b259713 100644
@@ -296,9 +296,6 @@ static int beagle_twl_gpio_setup(struct device *dev,
 }
 
 static struct twl4030_gpio_platform_data beagle_gpio_data = {
-	.gpio_base	= OMAP_MAX_GPIO_LINES,
-	.irq_base	= TWL4030_GPIO_IRQ_BASE,
-	.irq_end	= TWL4030_GPIO_IRQ_END,
 	.use_leds	= true,
 	.pullups	= BIT(1),
 	.pulldowns	= BIT(2) | BIT(6) | BIT(7) | BIT(8) | BIT(13)
arch/arm/mach-omap2/board-omap3evm.c +0 -3
index 64245bf..0470d44 100644
@@ -387,9 +387,6 @@ static int omap3evm_twl_gpio_setup(struct device *dev,
 }
 
 static struct twl4030_gpio_platform_data omap3evm_gpio_data = {
-	.gpio_base	= OMAP_MAX_GPIO_LINES,
-	.irq_base	= TWL4030_GPIO_IRQ_BASE,
-	.irq_end	= TWL4030_GPIO_IRQ_END,
 	.use_leds	= true,
 	.setup		= omap3evm_twl_gpio_setup,
 };
arch/arm/mach-omap2/board-omap3logic.c +0 -3
index a63a49d..8fe7f0c 100644
@@ -77,9 +77,6 @@ static struct regulator_init_data omap3logic_vmmc1 = {
 };
 
 static struct twl4030_gpio_platform_data omap3logic_gpio_data = {
-	.gpio_base	= OMAP_MAX_GPIO_LINES,
-	.irq_base	= TWL4030_GPIO_IRQ_BASE,
-	.irq_end	= TWL4030_GPIO_IRQ_END,
 	.use_leds	= true,
 	.pullups	= BIT(1),
 	.pulldowns	= BIT(2)  | BIT(6)  | BIT(7)  | BIT(8)
arch/arm/mach-omap2/board-omap3pandora.c +0 -3
index d14b0cd..93c6109 100644
@@ -320,9 +320,6 @@ static int omap3pandora_twl_gpio_setup(struct device *dev,
 }
 
 static struct twl4030_gpio_platform_data omap3pandora_gpio_data = {
-	.gpio_base	= OMAP_MAX_GPIO_LINES,
-	.irq_base	= TWL4030_GPIO_IRQ_BASE,
-	.irq_end	= TWL4030_GPIO_IRQ_END,
 	.setup		= omap3pandora_twl_gpio_setup,
 };
 
arch/arm/mach-omap2/board-omap3stalker.c +0 -3
index 2ec4802..465ee22 100644
@@ -278,9 +278,6 @@ omap3stalker_twl_gpio_setup(struct device *dev,
 }
 
 static struct twl4030_gpio_platform_data omap3stalker_gpio_data = {
-	.gpio_base	= OMAP_MAX_GPIO_LINES,
-	.irq_base	= TWL4030_GPIO_IRQ_BASE,
-	.irq_end	= TWL4030_GPIO_IRQ_END,
 	.use_leds	= true,
 	.setup		= omap3stalker_twl_gpio_setup,
 };
arch/arm/mach-omap2/board-omap3touchbook.c +0 -3
index b0516ec..ba657cd 100644
@@ -138,9 +138,6 @@ static int touchbook_twl_gpio_setup(struct device *dev,
 }
 
 static struct twl4030_gpio_platform_data touchbook_gpio_data = {
-	.gpio_base	= OMAP_MAX_GPIO_LINES,
-	.irq_base	= TWL4030_GPIO_IRQ_BASE,
-	.irq_end	= TWL4030_GPIO_IRQ_END,
 	.use_leds	= true,
 	.pullups	= BIT(1),
 	.pulldowns	= BIT(2) | BIT(6) | BIT(7) | BIT(8) | BIT(13)
arch/arm/mach-omap2/board-omap4panda.c +0 -1
index 3911c13..e37ee67 100644
@@ -262,7 +262,6 @@ static struct twl6040_codec_data twl6040_codec = {
 static struct twl6040_platform_data twl6040_data = {
 	.codec		= &twl6040_codec,
 	.audpwron_gpio	= 127,
-	.irq_base	= TWL6040_CODEC_IRQ_BASE,
 };
 
 /* Panda board uses the common PMIC configuration */
arch/arm/mach-omap2/board-overo.c +0 -3
index 3aaf4af..ec42d6c 100644
@@ -398,9 +398,6 @@ static int overo_twl_gpio_setup(struct device *dev,
 }
 
 static struct twl4030_gpio_platform_data overo_gpio_data = {
-	.gpio_base	= OMAP_MAX_GPIO_LINES,
-	.irq_base	= TWL4030_GPIO_IRQ_BASE,
-	.irq_end	= TWL4030_GPIO_IRQ_END,
 	.use_leds	= true,
 	.setup		= overo_twl_gpio_setup,
 };
arch/arm/mach-omap2/board-rm680.c +0 -3
index bbfbe56..4c45109 100644
@@ -72,9 +72,6 @@ static struct platform_device *rm680_peripherals_devices[] __initdata = {
 
 /* TWL */
 static struct twl4030_gpio_platform_data rm680_gpio_data = {
-	.gpio_base		= OMAP_MAX_GPIO_LINES,
-	.irq_base		= TWL4030_GPIO_IRQ_BASE,
-	.irq_end		= TWL4030_GPIO_IRQ_END,
 	.pullups		= BIT(0),
 	.pulldowns		= BIT(1) | BIT(2) | BIT(8) | BIT(15),
 };
arch/arm/mach-omap2/board-rx51-peripherals.c +0 -3
index 4be0552..06e44e4 100644
@@ -773,9 +773,6 @@ static int rx51_twlgpio_setup(struct device *dev, unsigned gpio, unsigned n)
 }
 
 static struct twl4030_gpio_platform_data rx51_gpio_data = {
-	.gpio_base		= OMAP_MAX_GPIO_LINES,
-	.irq_base		= TWL4030_GPIO_IRQ_BASE,
-	.irq_end		= TWL4030_GPIO_IRQ_END,
 	.pulldowns		= BIT(0) | BIT(1) | BIT(2) | BIT(3)
 				| BIT(4) | BIT(5)
 				| BIT(8) | BIT(9) | BIT(10) | BIT(11)
arch/arm/mach-omap2/board-zoom-peripherals.c +0 -3
index b797cb2..00f73b7 100644
@@ -251,9 +251,6 @@ static void zoom2_set_hs_extmute(int mute)
 }
 
 static struct twl4030_gpio_platform_data zoom_gpio_data = {
-	.gpio_base	= OMAP_MAX_GPIO_LINES,
-	.irq_base	= TWL4030_GPIO_IRQ_BASE,
-	.irq_end	= TWL4030_GPIO_IRQ_END,
 	.setup		= zoom_twl_gpio_setup,
 };
 
drivers/gpio/gpio-twl4030.c +10 -5
index 94256fe..f030880 100644
@@ -51,6 +51,7 @@
 
 
 static struct gpio_chip twl_gpiochip;
+static int twl4030_gpio_base;
 static int twl4030_gpio_irq_base;
 
 /* genirq interfaces are not available to modules */
@@ -428,8 +429,6 @@ no_irqs:
 	twl_gpiochip.dev = &pdev->dev;
 
 	if (pdata) {
-		twl_gpiochip.base = pdata->gpio_base;
-
 		/*
 		 * NOTE:  boards may waste power if they don't set pullups
 		 * and pulldowns correctly ... default for non-ULPI pins is
@@ -461,15 +460,21 @@ no_irqs:
 		dev_err(&pdev->dev, "could not register gpiochip, %d\n", ret);
 		twl_gpiochip.ngpio = 0;
 		gpio_twl4030_remove(pdev);
-	} else if (pdata && pdata->setup) {
+		goto out;
+	}
+
+	twl4030_gpio_base = twl_gpiochip.base;
+
+	if (pdata && pdata->setup) {
 		int status;
 
 		status = pdata->setup(&pdev->dev,
-				pdata->gpio_base, TWL4030_GPIO_MAX);
+				twl4030_gpio_base, TWL4030_GPIO_MAX);
 		if (status)
 			dev_dbg(&pdev->dev, "setup --> %d\n", status);
 	}
 
+out:
 	return ret;
 }
 
@@ -481,7 +486,7 @@ static int gpio_twl4030_remove(struct platform_device *pdev)
 
 	if (pdata && pdata->teardown) {
 		status = pdata->teardown(&pdev->dev,
-				pdata->gpio_base, TWL4030_GPIO_MAX);
+				twl4030_gpio_base, TWL4030_GPIO_MAX);
 		if (status) {
 			dev_dbg(&pdev->dev, "teardown --> %d\n", status);
 			return status;
include/linux/i2c/twl.h +0 -3
index 7ea898c..a12a381 100644
@@ -561,9 +561,6 @@ struct twl4030_bci_platform_data {
 
 /* TWL4030_GPIO_MAX (18) GPIOs, with interrupts */
 struct twl4030_gpio_platform_data {
-	int		gpio_base;
-	unsigned	irq_base, irq_end;
-
 	/* package the two LED signals as output-only GPIOs? */
 	bool		use_leds;
 
include/linux/mfd/twl6040.h +0 -2
index eaad49f..55b77b3 100644
@@ -194,7 +194,6 @@ struct twl6040_vibra_data {
 
 struct twl6040_platform_data {
 	int audpwron_gpio;	/* audio power-on gpio */
-	unsigned int irq_base;
 
 	struct twl6040_codec_data *codec;
 	struct twl6040_vibra_data *vibra;
@@ -222,7 +221,6 @@ struct twl6040 {
 	unsigned int mclk;
 
 	unsigned int irq;
-	unsigned int irq_base;
 	u8 irq_masks_cur;
 	u8 irq_masks_cache;
 };
#7 lore raw

PATCH 5/9 ARM: OMAP2+: Remove hardcoded twl4030 gpio_base, irq_base and irq_end

Quoted 9 lines · Tony Lindgren

We can't use hardcoded interrupts for SPARSE_IRQ, and can replace the hardcoded gpio_base with twl_gpiochip.base after it's been allocated.

Cc Grant Likely <[email protected]>
Cc Linus Walleij <[email protected]>
Cc Samuel Ortiz <[email protected]>
Cc Peter Ujfalusi <[email protected]>

Oh, cool.

Yours,
Linus Walleij

author maintainer
#8 lore raw

PATCH 5/9 ARM: OMAP2+: Remove hardcoded twl4030 gpio_base, irq_base and irq_end

In reply to Tony Lindgren
Quoted 3 lines · Tony Lindgren

We can't use hardcoded interrupts for SPARSE_IRQ, and can replace the hardcoded gpio_base with twl_gpiochip.base after it's been allocated.

...

include/linux/mfd/twl6040.h struct twl6040_vibra_data { · line 199

Quoted 10 lines
include/linux/mfd/twl6040.h +0 -1
@@ -194,7 +194,6 @@ struct twl6040_vibra_data {
 
 struct twl6040_platform_data {
 	int audpwron_gpio;	/* audio power-on gpio */
-	unsigned int irq_base;
 
 	struct twl6040_codec_data *codec;
 	struct twl6040_vibra_data *vibra;

The platform_data irq_base is not being used it seems..

include/linux/mfd/twl6040.h struct twl6040 { · line 226

Quoted 8 lines
include/linux/mfd/twl6040.h +0 -1
@@ -222,7 +221,6 @@ struct twl6040 {
 	unsigned int mclk;
 
 	unsigned int irq;
-	unsigned int irq_base;
 	u8 irq_masks_cur;
 	u8 irq_masks_cache;
 };

..but irq_base here is still in use as that's where the value from irq_alloc_descs() is being stored to. So I'll drop the changes to struct twl6040 from this patch as otherwise twl6040 code won't compile.

Turns out I did not have twl6040 selected in any of the testconfigs that I ran.

Regards,

Tony

#9 lore raw

PATCH 5/9 ARM: OMAP2+: Remove hardcoded twl4030 gpio_base, irq_base and irq_end

Hi Tony,

Quoted 10 lines · Tony Lindgren
Quoted 3 lines · Tony Lindgren

We can't use hardcoded interrupts for SPARSE_IRQ, and can replace the hardcoded gpio_base with twl_gpiochip.base after it's been allocated.

...

Quoted 4 lines
include/linux/mfd/twl6040.h +0 -0
@@ -194,7 +194,6 @@ struct twl6040_vibra_data {
 
Quoted 8 lines

include/linux/mfd/twl6040.h struct twl6040_vibra_data { · line 199

Quoted 6 lines
include/linux/mfd/twl6040.h +0 -1
 struct twl6040_platform_data {
 	int audpwron_gpio;	/* audio power-on gpio */
-	unsigned int irq_base;
 
 	struct twl6040_codec_data *codec;
 	struct twl6040_vibra_data *vibra;

The platform_data irq_base is not being used it seems..

Yes, this is not in use.

Quoted 14 lines

include/linux/mfd/twl6040.h struct twl6040 { · line 226

Quoted 9 lines
include/linux/mfd/twl6040.h +0 -1
@@ -222,7 +221,6 @@ struct twl6040 {
 	unsigned int mclk;
 
 	unsigned int irq;
-	unsigned int irq_base;
 	u8 irq_masks_cur;
 	u8 irq_masks_cache;
 };

..but irq_base here is still in use as that's where the value from irq_alloc_descs() is being stored to. So I'll drop the changes to struct twl6040 from this patch as otherwise twl6040 code won't compile.

Quoted 2 lines

Turns out I did not have twl6040 selected in any of the testconfigs that I ran.

I store the irq_base in a private data for the MFD driver so child drivers can request the correct IRQ.

You can safely remove the irq_base from twl6040_platform_data struct

Signature · 5 lines
Péter
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
author maintainer
#10 lore raw

PATCH 5/9 ARM: OMAP2+: Remove hardcoded twl4030 gpio_base, irq_base and irq_end

Quoted 8 lines · Peter Ujfalusi

Hi Tony,

Quoted 5 lines · Tony Lindgren

..but irq_base here is still in use as that's where the value from irq_alloc_descs() is being stored to. So I'll drop the changes to struct twl6040 from this patch as otherwise twl6040 code won't compile.

Quoted 7 lines
Quoted 2 lines

Turns out I did not have twl6040 selected in any of the testconfigs that I ran.

I store the irq_base in a private data for the MFD driver so child drivers can request the correct IRQ.

You can safely remove the irq_base from twl6040_platform_data struct

Can you please do a patch for that against testing-cleanup branch? That way we'll know that the twl changes get tested for audio ;)

Maybe also check if Felipe's earlier patch also has something else that can be removed? That's the "[PATCH] arm: omap: drop unused IRQ defines":

http://lists.infradead.org/pipermail/linux-arm-kernel/2012-June/103274.html#

Regards,

Tony

author maintainer
#11 lore raw

PATCH 6/9 ARM: OMAP: Move gpio.h to include/linux/platform_data

In reply to Tony Lindgren

This way we can remove includes of plat/gpio.h which won't work with the single zImage support.

Note that we also remove the cpu_class_is_omap2() check in gpio-omap.c as the drivers should not call it as we need to make it local to arch/arm/mach-omap2 for single zImage support.

While at it, arrange the related includes in the standard way.

---
 arch/arm/mach-omap1/board-ams-delta.c              |    3 ++-
 arch/arm/mach-omap1/board-osk.c                    |    1 +
 arch/arm/mach-omap1/gpio15xx.c                     |    1 +
 arch/arm/mach-omap1/gpio16xx.c                     |    1 +
 arch/arm/mach-omap1/gpio7xx.c                      |    1 +
 arch/arm/mach-omap1/include/mach/gpio.h            |    2 --
 arch/arm/mach-omap1/leds-h2p2-debug.c              |    4 +++-
 arch/arm/mach-omap1/leds.c                         |    1 +
 arch/arm/mach-omap2/board-am3517evm.c              |    9 ++++++---
 arch/arm/mach-omap2/board-cm-t35.c                 |   12 +++++++-----
 arch/arm/mach-omap2/board-zoom-display.c           |    6 +++++-
 arch/arm/mach-omap2/board-zoom-peripherals.c       |    1 +
 arch/arm/mach-omap2/gpio.c                         |    1 +
 arch/arm/mach-omap2/hsmmc.c                        |    5 ++++-
 arch/arm/mach-omap2/include/mach/gpio.h            |    2 --
 arch/arm/mach-omap2/msdi.c                         |    1 +
 arch/arm/mach-omap2/omap_hwmod_2420_data.c         |    1 -
 arch/arm/mach-omap2/omap_hwmod_2430_data.c         |    6 +++---
 arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c |    2 +-
 arch/arm/mach-omap2/omap_hwmod_3xxx_data.c         |    6 +++---
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c         |    6 +++---
 arch/arm/mach-omap2/pm24xx.c                       |    1 +
 arch/arm/mach-omap2/pm34xx.c                       |    2 ++
 drivers/gpio/gpio-omap.c                           |   15 ++++++++-------
 drivers/mtd/nand/ams-delta.c                       |    8 ++++++--
 include/linux/platform_data/gpio-omap.h            |   15 ++-------------
 sound/soc/omap/sdp3430.c                           |    1 +
 27 files changed, 65 insertions(+), 49 deletions(-)
 rename arch/arm/plat-omap/include/plat/gpio.h => include/linux/platform_data/gpio-omap.h (94%)
arch/arm/mach-omap1/board-ams-delta.c +2 -1
index 147d665..4b5578b 100644
@@ -26,6 +26,8 @@
 #include <linux/export.h>
 #include <linux/omapfb.h>
 #include <linux/io.h>
+#include <linux/platform_data/gpio-omap.h>
+#include <linux/platform_data/keypad-omap.h>
 
 #include <media/soc_camera.h>
 
@@ -35,7 +37,6 @@
 #include <asm/mach/map.h>
 
 #include <plat/board-ams-delta.h>
-#include <linux/platform_data/keypad-omap.h>
 #include <plat/mux.h>
 
 #include <mach/hardware.h>
arch/arm/mach-omap1/board-osk.c +1 -0
index 9413fd3..c780a1b 100644
@@ -39,6 +39,7 @@
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/physmap.h>
 #include <linux/i2c/tps65010.h>
+#include <linux/platform_data/gpio-omap.h>
 #include <linux/platform_data/omap1_bl.h>
 
 #include <asm/mach-types.h>
arch/arm/mach-omap1/gpio15xx.c +1 -0
index ebef15e..98e6f39 100644
@@ -17,6 +17,7 @@
  */
 
 #include <linux/gpio.h>
+#include <linux/platform_data/gpio-omap.h>
 
 #define OMAP1_MPUIO_VBASE		OMAP1_MPUIO_BASE
 #define OMAP1510_GPIO_BASE		0xFFFCE000
arch/arm/mach-omap1/gpio16xx.c +1 -0
index 2a48cd2..33f4192 100644
@@ -17,6 +17,7 @@
  */
 
 #include <linux/gpio.h>
+#include <linux/platform_data/gpio-omap.h>
 
 #define OMAP1610_GPIO1_BASE		0xfffbe400
 #define OMAP1610_GPIO2_BASE		0xfffbec00
arch/arm/mach-omap1/gpio7xx.c +1 -0
index acf12b7..958ce9a 100644
@@ -17,6 +17,7 @@
  */
 
 #include <linux/gpio.h>
+#include <linux/platform_data/gpio-omap.h>
 
 #define OMAP7XX_GPIO1_BASE		0xfffbc000
 #define OMAP7XX_GPIO2_BASE		0xfffbc800
arch/arm/mach-omap1/include/mach/gpio.h +0 -2
index e737706..ebf86c0 100644
@@ -1,5 +1,3 @@
 /*
  * arch/arm/mach-omap1/include/mach/gpio.h
  */
-
-#include <plat/gpio.h>
arch/arm/mach-omap1/leds-h2p2-debug.c +3 -1
index f6b14a1..3ea12c7 100644
@@ -14,13 +14,15 @@
 #include <linux/kernel_stat.h>
 #include <linux/sched.h>
 #include <linux/io.h>
+#include <linux/platform_data/gpio-omap.h>
 
-#include <mach/hardware.h>
 #include <asm/leds.h>
 #include <asm/mach-types.h>
 
 #include <plat/fpga.h>
 
+#include <mach/hardware.h>
+
 #include "leds.h"
 
 
arch/arm/mach-omap1/leds.c +1 -0
index ae6dd93..7b1a383 100644
@@ -6,6 +6,7 @@
 #include <linux/gpio.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
+#include <linux/platform_data/gpio-omap.h>
 
 #include <asm/leds.h>
 #include <asm/mach-types.h>
arch/arm/mach-omap2/board-am3517evm.c +6 -3
index 00abda1..c6d63d7 100644
@@ -25,19 +25,22 @@
 #include <linux/can/platform/ti_hecc.h>
 #include <linux/davinci_emac.h>
 #include <linux/mmc/host.h>
+#include <linux/platform_data/gpio-omap.h>
 
-#include <mach/hardware.h>
-#include <mach/am35xx.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
-#include "common.h"
 #include <plat/usb.h>
+
+#include <mach/hardware.h>
+#include <mach/am35xx.h>
+
 #include <video/omapdss.h>
 #include <video/omap-panel-generic-dpi.h>
 #include <video/omap-panel-tfp410.h>
 
+#include "common.h"
 #include "am35xx-emac.h"
 #include "mux.h"
 #include "control.h"
arch/arm/mach-omap2/board-cm-t35.c +7 -5
index ad83654..c2b2371 100644
@@ -23,6 +23,9 @@
 #include <linux/input/matrix_keypad.h>
 #include <linux/delay.h>
 #include <linux/gpio.h>
+#include <linux/platform_data/gpio-omap.h>
+#include <linux/platform_data/mtd-nand-omap2.h>
+#include <linux/platform_data/spi-omap2-mcspi.h>
 
 #include <linux/i2c/at24.h>
 #include <linux/i2c/twl.h>
@@ -37,17 +40,16 @@
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
-#include "common.h"
-#include <linux/platform_data/mtd-nand-omap2.h>
 #include <plat/gpmc.h>
 #include <plat/usb.h>
+
+#include <mach/hardware.h>
+
 #include <video/omapdss.h>
 #include <video/omap-panel-generic-dpi.h>
 #include <video/omap-panel-tfp410.h>
-#include <linux/platform_data/spi-omap2-mcspi.h>
-
-#include <mach/hardware.h>
 
+#include "common.h"
 #include "mux.h"
 #include "sdram-micron-mt46h32m32lf-6.h"
 #include "hsmmc.h"
arch/arm/mach-omap2/board-zoom-display.c +5 -1
index 660a2932..0e48a51 100644
@@ -15,9 +15,13 @@
 #include <linux/i2c/twl.h>
 #include <linux/spi/spi.h>
 #include <linux/platform_data/spi-omap2-mcspi.h>
-#include <video/omapdss.h>
+
+#include <plat/cpu.h>
+
 #include <mach/board-zoom.h>
 
+#include <video/omapdss.h>
+
 #define LCD_PANEL_RESET_GPIO_PROD	96
 #define LCD_PANEL_RESET_GPIO_PILOT	55
 #define LCD_PANEL_QVGA_GPIO		56
arch/arm/mach-omap2/board-zoom-peripherals.c +1 -0
index 00f73b7..ae5d36b 100644
@@ -19,6 +19,7 @@
 #include <linux/regulator/fixed.h>
 #include <linux/wl12xx.h>
 #include <linux/mmc/host.h>
+#include <linux/platform_data/gpio-omap.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
arch/arm/mach-omap2/gpio.c +1 -0
index 9ad7d48..7b52bdf 100644
@@ -21,6 +21,7 @@
 #include <linux/slab.h>
 #include <linux/interrupt.h>
 #include <linux/of.h>
+#include <linux/platform_data/gpio-omap.h>
 
 #include <plat/omap_hwmod.h>
 #include <plat/omap_device.h>
arch/arm/mach-omap2/hsmmc.c +4 -1
index a9675d8..4b0e166 100644
@@ -14,12 +14,15 @@
 #include <linux/string.h>
 #include <linux/delay.h>
 #include <linux/gpio.h>
-#include <mach/hardware.h>
+#include <linux/platform_data/gpio-omap.h>
+
 #include <plat/mmc.h>
 #include <plat/omap-pm.h>
 #include <plat/mux.h>
 #include <plat/omap_device.h>
 
+#include <mach/hardware.h>
+
 #include "mux.h"
 #include "hsmmc.h"
 #include "control.h"
arch/arm/mach-omap2/include/mach/gpio.h +0 -2
index be4d290..5621cc5 100644
@@ -1,5 +1,3 @@
 /*
  * arch/arm/mach-omap2/include/mach/gpio.h
  */
-
-#include <plat/gpio.h>
arch/arm/mach-omap2/msdi.c +1 -0
index fb5bc6c..9e57b4a 100644
@@ -23,6 +23,7 @@
 
 #include <linux/kernel.h>
 #include <linux/err.h>
+#include <linux/platform_data/gpio-omap.h>
 
 #include <plat/omap_hwmod.h>
 #include <plat/omap_device.h>
arch/arm/mach-omap2/omap_hwmod_2420_data.c +0 -1
index 558c300..b305d7f 100644
@@ -18,7 +18,6 @@
 #include <plat/dma.h>
 #include <plat/serial.h>
 #include <plat/i2c.h>
-#include <plat/gpio.h>
 #include <linux/platform_data/spi-omap2-mcspi.h>
 #include <plat/dmtimer.h>
 #include <plat/l3_2xxx.h>
arch/arm/mach-omap2/omap_hwmod_2430_data.c +3 -3
index d662766..79ac236 100644
@@ -12,15 +12,15 @@
  * XXX handle crossbar/shared link difference for L3?
  * XXX these should be marked initdata for multi-OMAP kernels
  */
+#include <linux/platform_data/dsp-mcbsp.h>
+#include <linux/platform_data/spi-omap2-mcspi.h>
+
 #include <plat/omap_hwmod.h>
 #include <mach/irqs.h>
 #include <plat/cpu.h>
 #include <plat/dma.h>
 #include <plat/serial.h>
 #include <plat/i2c.h>
-#include <plat/gpio.h>
-#include <linux/platform_data/dsp-mcbsp.h>
-#include <linux/platform_data/spi-omap2-mcspi.h>
 #include <plat/dmtimer.h>
 #include <plat/mmc.h>
 #include <plat/l3_2xxx.h>
arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c +1 -1
index 161ae0a..44e4764 100644
@@ -10,9 +10,9 @@
  */
 #include <plat/omap_hwmod.h>
 #include <plat/serial.h>
-#include <plat/gpio.h>
 #include <plat/dma.h>
 #include <plat/dmtimer.h>
+#include <linux/platform_data/gpio-omap.h>
 #include <linux/platform_data/spi-omap2-mcspi.h>
 
 #include <mach/irqs.h>
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +3 -3
index 656bb7f..15f617e 100644
@@ -15,6 +15,9 @@
  * XXX these should be marked initdata for multi-OMAP kernels
  */
 #include <linux/power/smartreflex.h>
+#include <linux/platform_data/gpio-omap.h>
+#include <linux/platform_data/dsp-mcbsp.h>
+#include <linux/platform_data/spi-omap2-mcspi.h>
 
 #include <plat/omap_hwmod.h>
 #include <mach/irqs.h>
@@ -24,10 +27,7 @@
 #include <plat/l3_3xxx.h>
 #include <plat/l4_3xxx.h>
 #include <plat/i2c.h>
-#include <plat/gpio.h>
 #include <plat/mmc.h>
-#include <linux/platform_data/dsp-mcbsp.h>
-#include <linux/platform_data/spi-omap2-mcspi.h>
 #include <plat/dmtimer.h>
 
 #include "omap_hwmod_common_data.h"
arch/arm/mach-omap2/omap_hwmod_44xx_data.c +3 -3
index 3a06e7d..c9edaf2 100644
@@ -19,15 +19,15 @@
  */
 
 #include <linux/io.h>
+#include <linux/platform_data/gpio-omap.h>
+#include <linux/platform_data/spi-omap2-mcspi.h>
+#include <linux/platform_data/dsp-mcbsp.h>
 #include <linux/power/smartreflex.h>
 
 #include <plat/omap_hwmod.h>
 #include <plat/cpu.h>
 #include <plat/i2c.h>
-#include <plat/gpio.h>
 #include <plat/dma.h>
-#include <linux/platform_data/spi-omap2-mcspi.h>
-#include <linux/platform_data/dsp-mcbsp.h>
 #include <plat/mmc.h>
 #include <plat/dmtimer.h>
 #include <plat/common.h>
arch/arm/mach-omap2/pm24xx.c +1 -0
index de1caf1..2708a8b 100644
@@ -29,6 +29,7 @@
 #include <linux/irq.h>
 #include <linux/time.h>
 #include <linux/gpio.h>
+#include <linux/platform_data/gpio-omap.h>
 
 #include <asm/mach/time.h>
 #include <asm/mach/irq.h>
arch/arm/mach-omap2/pm34xx.c +2 -0
index e4fc88c..2a08978 100644
@@ -28,6 +28,8 @@
 #include <linux/clk.h>
 #include <linux/delay.h>
 #include <linux/slab.h>
+#include <linux/platform_data/gpio-omap.h>
+
 #include <trace/events/power.h>
 
 #include <asm/suspend.h>
drivers/gpio/gpio-omap.c +8 -7
index e6efd77..64fbce3 100644
@@ -25,11 +25,9 @@
 #include <linux/of.h>
 #include <linux/of_device.h>
 #include <linux/irqdomain.h>
+#include <linux/gpio.h>
+#include <linux/platform_data/gpio-omap.h>
 
-#include <mach/hardware.h>
-#include <asm/irq.h>
-#include <mach/irqs.h>
-#include <asm/gpio.h>
 #include <asm/mach/irq.h>
 
 #define OFF_MODE	1
@@ -385,13 +383,16 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio,
 static int gpio_irq_type(struct irq_data *d, unsigned type)
 {
 	struct gpio_bank *bank = irq_data_get_irq_chip_data(d);
-	unsigned gpio;
+	unsigned gpio = 0;
 	int retval;
 	unsigned long flags;
 
-	if (!cpu_class_is_omap2() && d->irq > IH_MPUIO_BASE)
+#ifdef CONFIG_ARCH_OMAP1
+	if (d->irq > IH_MPUIO_BASE)
 		gpio = OMAP_MPUIO(d->irq - IH_MPUIO_BASE);
-	else
+#endif
+
+	if (!gpio)
 		gpio = irq_to_gpio(bank, d->irq);
 
 	if (type & ~IRQ_TYPE_SENSE_MASK)
drivers/mtd/nand/ams-delta.c +6 -2
index 861ca8f..78a524b 100644
@@ -23,12 +23,16 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/nand.h>
 #include <linux/mtd/partitions.h>
+#include <linux/gpio.h>
+#include <linux/platform_data/gpio-omap.h>
+
 #include <asm/io.h>
-#include <mach/hardware.h>
 #include <asm/sizes.h>
-#include <linux/gpio.h>
+
 #include <plat/board-ams-delta.h>
 
+#include <mach/hardware.h>
+
 /*
  * MTD structure for E3 (Delta)
  */
include/linux/platform_data/gpio-omap.h renamed from arch/arm/plat-omap/include/plat/gpio.h +2 -13
similarity index 94%
rename from arch/arm/plat-omap/include/plat/gpio.h
rename to include/linux/platform_data/gpio-omap.h
index 50fb7cc..e8741c2 100644
@@ -1,6 +1,4 @@
 /*
- * arch/arm/plat-omap/include/mach/gpio.h
- *
  * OMAP GPIO handling defines and functions
  *
  * Copyright (C) 2003-2005 Nokia Corporation
@@ -155,6 +153,8 @@
 #define OMAP4_GPIO_CLEARDATAOUT		0x0190
 #define OMAP4_GPIO_SETDATAOUT		0x0194
 
+#define OMAP_MAX_GPIO_LINES		192
+
 #define OMAP_MPUIO(nr)		(OMAP_MAX_GPIO_LINES + (nr))
 #define OMAP_GPIO_IS_MPUIO(nr)	((nr) >= OMAP_MAX_GPIO_LINES)
 
@@ -213,16 +213,5 @@ extern void omap2_gpio_prepare_for_idle(int off_mode);
 extern void omap2_gpio_resume_after_idle(void);
 extern void omap_set_gpio_debounce(int gpio, int enable);
 extern void omap_set_gpio_debounce_time(int gpio, int enable);
-/*-------------------------------------------------------------------------*/
-
-/*
- * Wrappers for "new style" GPIO calls, using the new infrastructure
- * which lets us plug in FPGA, I2C, and other implementations.
- *
- * The original OMAP-specific calls should eventually be removed.
- */
-
-#include <linux/errno.h>
-#include <asm-generic/gpio.h>
 
 #endif
sound/soc/omap/sdp3430.c +1 -0
index 33f4ac2..da45b51 100644
@@ -33,6 +33,7 @@
 #include <asm/mach-types.h>
 #include <mach/hardware.h>
 #include <mach/gpio.h>
+#include <linux/platform_data/gpio-omap.h>
 #include <linux/platform_data/dsp-mcbsp.h>
 
 /* Register descriptions for twl4030 codec part */
Acked-by on v1 6/9
#12 lore raw

Re: [PATCH 6/9] ARM: OMAP: Move gpio.h to include/linux/platform_data

Quoted 7 lines · Tony Lindgren

This way we can remove includes of plat/gpio.h which won't work with the single zImage support.

Note that we also remove the cpu_class_is_omap2() check in gpio-omap.c as the drivers should not call it as we need to make it local to arch/arm/mach-omap2 for single zImage support.

Quoted 7 lines

While at it, arrange the related includes in the standard way.

Yours,
Linus Walleij

#13 lore raw

RE: [PATCH 6/9] ARM: OMAP: Move gpio.h to include/linux/platform_data

In reply to Tony Lindgren

Hi,

Quoted 7 lines · Tony Lindgren

This way we can remove includes of plat/gpio.h which won't work with the single zImage support.

Note that we also remove the cpu_class_is_omap2() check in gpio-omap.c as the drivers should not call it as we need to make it local to arch/arm/mach-omap2 for single zImage support.

Quoted 7 lines

While at it, arrange the related includes in the standard way.

I think there is only one Tony ;)

Regards
Afzal

author maintainer
#14 lore raw

Re: [PATCH 6/9] ARM: OMAP: Move gpio.h to include/linux/platform_data

Quoted 12 lines · Mohammed, Afzal

Hi,

Quoted 9 lines · Tony Lindgren

This way we can remove includes of plat/gpio.h which won't work with the single zImage support.

Note that we also remove the cpu_class_is_omap2() check in gpio-omap.c as the drivers should not call it as we need to make it local to arch/arm/mach-omap2 for single zImage support.

While at it, arrange the related includes in the standard way.

Quoted 7 lines
Quoted 5 lines

I think there is only one Tony ;)

Heh thanks I'll tell myself to replace it with Signed-off-by :)

Tony

author maintainer
#15 lore raw

PATCH 7/9 ARM: OMAP2+: Prepare for irqs.h removal

In reply to Tony Lindgren

As the interrupts should only be defined in the platform_data, and eventually coming from device tree, there's no need to define them in header files.

Let's remove the hardcoded references to irqs.h and fix up the includes so we don't rely on headers included in irqs.h. While at it, sort the includes the standard way.

---
 arch/arm/mach-omap2/board-2430sdp.c                |    7 +++--
 arch/arm/mach-omap2/board-4430sdp.c                |    2 +
 arch/arm/mach-omap2/board-am3517evm.c              |    3 +-
 arch/arm/mach-omap2/board-cm-t3517.c               |    6 ++--
 arch/arm/mach-omap2/board-flash.c                  |    2 +
 arch/arm/mach-omap2/board-igep0020.c               |    7 +++--
 arch/arm/mach-omap2/board-n8x0.c                   |    3 +-
 arch/arm/mach-omap2/board-omap4panda.c             |    2 +
 arch/arm/mach-omap2/board-rm680.c                  |    6 +++-
 arch/arm/mach-omap2/board-rx51-peripherals.c       |    2 +
 arch/arm/mach-omap2/board-ti8168evm.c              |    3 +-
 arch/arm/mach-omap2/board-zoom-debugboard.c        |    1 +
 arch/arm/mach-omap2/board-zoom-peripherals.c       |    5 ++--
 arch/arm/mach-omap2/cpuidle34xx.c                  |    1 -
 arch/arm/mach-omap2/devices.c                      |    7 +----
 arch/arm/mach-omap2/gpmc-smc91x.c                  |    1 +
 arch/arm/mach-omap2/gpmc.c                         |   11 +++++---
 arch/arm/mach-omap2/io.c                           |    2 +
 arch/arm/mach-omap2/mailbox.c                      |    3 +-
 arch/arm/mach-omap2/mcbsp.c                        |    1 -
 arch/arm/mach-omap2/omap-iommu.c                   |    1 -
 arch/arm/mach-omap2/omap-wakeupgen.c               |    1 +
 arch/arm/mach-omap2/omap4-common.c                 |    7 ++---
 arch/arm/mach-omap2/omap_hwmod_2420_data.c         |    1 -
 arch/arm/mach-omap2/omap_hwmod_2430_data.c         |    3 +-
 .../mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c |   12 ++++-----
 arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c |    2 -
 arch/arm/mach-omap2/omap_hwmod_3xxx_data.c         |   27 ++++++++++----------
 arch/arm/mach-omap2/omap_l3_noc.c                  |    6 +++-
 arch/arm/mach-omap2/omap_phy_internal.c            |    2 +
 arch/arm/mach-omap2/pm24xx.c                       |    2 -
 arch/arm/mach-omap2/prcm.c                         |    1 -
 arch/arm/mach-omap2/prm2xxx_3xxx.c                 |    3 +-
 arch/arm/mach-omap2/prm44xx.c                      |    4 +--
 arch/arm/mach-omap2/prm_common.c                   |    1 -
 arch/arm/mach-omap2/serial.c                       |    1 +
 arch/arm/mach-omap2/timer.c                        |   10 ++++---
 arch/arm/mach-omap2/twl-common.c                   |    3 +-
 arch/arm/mach-omap2/twl-common.h                   |    6 +---
 arch/arm/mach-omap2/usb-host.c                     |    1 -
 arch/arm/mach-omap2/usb-musb.c                     |    1 -
 arch/arm/plat-omap/include/plat/omap44xx.h         |    1 +
 drivers/dma/omap-dma.c                             |    2 +
 drivers/mfd/twl-core.c                             |    2 +
 drivers/mtd/onenand/omap2.c                        |    8 ++++--
 drivers/tty/serial/8250/8250.c                     |    4 +--
 drivers/video/omap2/dss/dispc.c                    |    1 +
 drivers/video/omap2/omapfb/omapfb-main.c           |    4 ++-
 sound/soc/omap/mcbsp.c                             |    3 +-
 sound/soc/omap/omap-mcbsp.c                        |    1 +
 sound/soc/omap/omap-pcm.c                          |    1 +
 51 files changed, 105 insertions(+), 92 deletions(-)
arch/arm/mach-omap2/board-2430sdp.c +4 -3
index cacc498..3a587d0 100644
@@ -28,19 +28,20 @@
 #include <linux/io.h>
 #include <linux/gpio.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
-#include "common.h"
 #include <plat/gpmc.h>
 #include <plat/usb.h>
 #include <plat/gpmc-smc91x.h>
 
+#include <mach/hardware.h>
+
 #include <video/omapdss.h>
 #include <video/omap-panel-generic-dpi.h>
 
+#include "common.h"
 #include "mux.h"
 #include "hsmmc.h"
 #include "common-board-devices.h"
@@ -231,7 +232,7 @@ static int __init omap2430_i2c_init(void)
 	sdp2430_i2c1_boardinfo[0].irq = gpio_to_irq(78);
 	omap_register_i2c_bus(1, 100, sdp2430_i2c1_boardinfo,
 			ARRAY_SIZE(sdp2430_i2c1_boardinfo));
-	omap_pmic_init(2, 100, "twl4030", INT_24XX_SYS_NIRQ,
+	omap_pmic_init(2, 100, "twl4030", 7,
 			&sdp2430_twldata);
 	return 0;
 }
arch/arm/mach-omap2/board-4430sdp.c +1 -1
index ee82604..31456ea 100644
@@ -579,7 +579,7 @@ static int __init omap4_i2c_init(void)
 			TWL_COMMON_REGULATOR_V1V8 |
 			TWL_COMMON_REGULATOR_V2V1);
 	omap4_pmic_init("twl6030", &sdp4430_twldata,
-			&twl6040_data, OMAP44XX_IRQ_SYS_2N);
+			&twl6040_data, 119 + OMAP44XX_IRQ_GIC_START);
 	omap_register_i2c_bus(2, 400, NULL, 0);
 	omap_register_i2c_bus(3, 400, sdp4430_i2c_3_boardinfo,
 				ARRAY_SIZE(sdp4430_i2c_3_boardinfo));
arch/arm/mach-omap2/board-am3517evm.c +1 -2
index c6d63d7..818f664 100644
@@ -298,8 +298,7 @@ static struct resource am3517_hecc_resources[] = {
 		.flags	= IORESOURCE_MEM,
 	},
 	{
-		.start	= INT_35XX_HECC0_IRQ,
-		.end	= INT_35XX_HECC0_IRQ,
+		.start	= 24,
 		.flags	= IORESOURCE_IRQ,
 	},
 };
arch/arm/mach-omap2/board-cm-t3517.c +3 -3
index 30b7b01..d1c59d3 100644
@@ -38,13 +38,14 @@
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
-#include "common.h"
 #include <plat/usb.h>
 #include <linux/platform_data/mtd-nand-omap2.h>
 #include <plat/gpmc.h>
+#include <plat/serial.h>
 
 #include <mach/am35xx.h>
 
+#include "common.h"
 #include "mux.h"
 #include "control.h"
 #include "common-board-devices.h"
@@ -89,8 +90,7 @@ static struct resource cm_t3517_hecc_resources[] = {
 		.flags	= IORESOURCE_MEM,
 	},
 	{
-		.start	= INT_35XX_HECC0_IRQ,
-		.end	= INT_35XX_HECC0_IRQ,
+		.start	= 24,
 		.flags	= IORESOURCE_IRQ,
 	},
 };
arch/arm/mach-omap2/board-flash.c +1 -1
index c8d4382..bd67c4c 100644
@@ -16,8 +16,8 @@
 #include <linux/platform_device.h>
 #include <linux/mtd/physmap.h>
 #include <linux/io.h>
-#include <plat/irqs.h>
 
+#include <plat/cpu.h>
 #include <plat/gpmc.h>
 #include <linux/platform_data/mtd-nand-omap2.h>
 #include <linux/platform_data/mtd-onenand-omap2.h>
arch/arm/mach-omap2/board-igep0020.c +4 -3
index 0b9677b..0dfed5a 100644
@@ -23,19 +23,20 @@
 #include <linux/regulator/fixed.h>
 #include <linux/i2c/twl.h>
 #include <linux/mmc/host.h>
-
 #include <linux/mtd/nand.h>
+#include <linux/platform_data/mtd-onenand-omap2.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 
-#include "common.h"
 #include <plat/gpmc.h>
 #include <plat/usb.h>
+#include <plat/serial.h>
+
 #include <video/omapdss.h>
 #include <video/omap-panel-tfp410.h>
-#include <linux/platform_data/mtd-onenand-omap2.h>
 
+#include "common.h"
 #include "mux.h"
 #include "hsmmc.h"
 #include "sdram-numonyx-m65kxxxxam.h"
arch/arm/mach-omap2/board-n8x0.c +1 -2
index edf6559..eed16d6 100644
@@ -27,7 +27,6 @@
 
 #include "common.h"
 #include <plat/menelaus.h>
-#include <mach/irqs.h>
 #include <linux/platform_data/spi-omap2-mcspi.h>
 #include <linux/platform_data/mtd-onenand-omap2.h>
 #include <plat/mmc.h>
@@ -599,7 +598,7 @@ static struct menelaus_platform_data n8x0_menelaus_platform_data __initdata = {
 static struct i2c_board_info __initdata n8x0_i2c_board_info_1[] __initdata = {
 	{
 		I2C_BOARD_INFO("menelaus", 0x72),
-		.irq = INT_24XX_SYS_NIRQ,
+		.irq = 7,
 		.platform_data = &n8x0_menelaus_platform_data,
 	},
 };
arch/arm/mach-omap2/board-omap4panda.c +1 -1
index e37ee67..cbf6fd5 100644
@@ -292,7 +292,7 @@ static int __init omap4_panda_i2c_init(void)
 			TWL_COMMON_REGULATOR_V1V8 |
 			TWL_COMMON_REGULATOR_V2V1);
 	omap4_pmic_init("twl6030", &omap4_panda_twldata,
-			&twl6040_data, OMAP44XX_IRQ_SYS_2N);
+			&twl6040_data, 119 + OMAP44XX_IRQ_GIC_START);
 	omap_register_i2c_bus(2, 400, NULL, 0);
 	/*
 	 * Bus 3 is attached to the DVI port where devices like the pico DLP
arch/arm/mach-omap2/board-rm680.c +4 -2
index 4c45109..abdb057 100644
@@ -25,9 +25,11 @@
 #include <plat/mmc.h>
 #include <plat/usb.h>
 #include <plat/gpmc.h>
-#include "common.h"
+#include <plat/serial.h>
+
 #include <linux/platform_data/mtd-onenand-omap2.h>
 
+#include "common.h"
 #include "mux.h"
 #include "hsmmc.h"
 #include "sdram-nokia.h"
@@ -84,7 +86,7 @@ static struct twl4030_platform_data rm680_twl_data = {
 static void __init rm680_i2c_init(void)
 {
 	omap3_pmic_get_config(&rm680_twl_data, TWL_COMMON_PDATA_USB, 0);
-	omap_pmic_init(1, 2900, "twl5031", INT_34XX_SYS_NIRQ, &rm680_twl_data);
+	omap_pmic_init(1, 2900, "twl5031", 7, &rm680_twl_data);
 	omap_register_i2c_bus(2, 400, NULL, 0);
 	omap_register_i2c_bus(3, 400, NULL, 0);
 }
arch/arm/mach-omap2/board-rx51-peripherals.c +1 -1
index 06e44e4..93710b3 100644
@@ -1047,7 +1047,7 @@ static int __init rx51_i2c_init(void)
 	rx51_twldata.vdac->constraints.apply_uV = true;
 	rx51_twldata.vdac->constraints.name = "VDAC";
 
-	omap_pmic_init(1, 2200, "twl5030", INT_34XX_SYS_NIRQ, &rx51_twldata);
+	omap_pmic_init(1, 2200, "twl5030", 7, &rx51_twldata);
 	omap_register_i2c_bus(2, 100, rx51_peripherals_i2c_board_info_2,
 			      ARRAY_SIZE(rx51_peripherals_i2c_board_info_2));
 #if defined(CONFIG_SENSORS_LIS3_I2C) || defined(CONFIG_SENSORS_LIS3_I2C_MODULE)
arch/arm/mach-omap2/board-ti8168evm.c +1 -2
index da4679d..5387cb8 100644
@@ -20,9 +20,8 @@
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
-#include <plat/irqs.h>
-#include "common.h"
 #include <plat/usb.h>
+#include "common.h"
 
 static struct omap_musb_board_data musb_board_data = {
 	.set_phy_power	= ti81xx_musb_phy_power,
arch/arm/mach-omap2/board-zoom-debugboard.c +1 -0
index f64f441..f1100c2 100644
@@ -19,6 +19,7 @@
 
 #include <plat/gpmc.h>
 #include <plat/gpmc-smsc911x.h>
+#include <plat/serial.h>
 
 #include <mach/board-zoom.h>
 
arch/arm/mach-omap2/board-zoom-peripherals.c +3 -2
index ae5d36b..406303d 100644
@@ -25,11 +25,12 @@
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
-#include "common.h"
 #include <plat/usb.h>
+#include <plat/serial.h>
 
 #include <mach/board-zoom.h>
 
+#include "common.h"
 #include "mux.h"
 #include "hsmmc.h"
 #include "common-board-devices.h"
@@ -279,7 +280,7 @@ static int __init omap_i2c_init(void)
 		codec_data->hs_extmute = 1;
 		codec_data->set_hs_extmute = zoom2_set_hs_extmute;
 	}
-	omap_pmic_init(1, 2400, "twl5030", INT_34XX_SYS_NIRQ, &zoom_twldata);
+	omap_pmic_init(1, 2400, "twl5030", 7, &zoom_twldata);
 	omap_register_i2c_bus(2, 400, NULL, 0);
 	omap_register_i2c_bus(3, 400, NULL, 0);
 	return 0;
arch/arm/mach-omap2/cpuidle34xx.c +0 -1
index f2a49a4..bc27569 100644
@@ -28,7 +28,6 @@
 #include <linux/cpu_pm.h>
 
 #include <plat/prcm.h>
-#include <plat/irqs.h>
 #include "powerdomain.h"
 #include "clockdomain.h"
 
arch/arm/mach-omap2/devices.c +2 -5
index b80073f..a4f5ce6 100644
@@ -20,17 +20,16 @@
 #include <linux/platform_data/omap4-keypad.h>
 
 #include <mach/hardware.h>
-#include <mach/irqs.h>
 #include <asm/mach-types.h>
 #include <asm/mach/map.h>
 #include <asm/pmu.h>
 
-#include "iomap.h"
 #include <plat/dma.h>
 #include <plat/omap_hwmod.h>
 #include <plat/omap_device.h>
 #include <plat/omap4-keypad.h>
 
+#include "iomap.h"
 #include "mux.h"
 #include "control.h"
 #include "devices.h"
@@ -435,13 +434,11 @@ static inline void omap_init_mcspi(void) {}
 
 static struct resource omap2_pmu_resource = {
 	.start	= 3,
-	.end	= 3,
 	.flags	= IORESOURCE_IRQ,
 };
 
 static struct resource omap3_pmu_resource = {
-	.start	= INT_34XX_BENCH_MPU_EMUL,
-	.end	= INT_34XX_BENCH_MPU_EMUL,
+	.start	= 3,
 	.flags	= IORESOURCE_IRQ,
 };
 
arch/arm/mach-omap2/gpmc-smc91x.c +1 -0
index 3f75ff0..e8ff2da 100644
@@ -17,6 +17,7 @@
 #include <linux/io.h>
 #include <linux/smc91x.h>
 
+#include <plat/cpu.h>
 #include <plat/gpmc.h>
 #include <plat/gpmc-smc91x.h>
 
arch/arm/mach-omap2/gpmc.c +7 -4
index 39c30d9..bea55a2 100644
@@ -26,10 +26,13 @@
 #include <linux/interrupt.h>
 
 #include <asm/mach-types.h>
-#include <plat/gpmc.h>
 
+#include <plat/cpu.h>
+#include <plat/gpmc.h>
 #include <plat/sdrc.h>
 
+#include <mach/hardware.h>
+
 /* GPMC register offsets */
 #define GPMC_REVISION		0x00
 #define GPMC_SYSCONFIG		0x10
@@ -846,16 +849,16 @@ static int __init gpmc_init(void)
 			l = OMAP2420_GPMC_BASE;
 		else
 			l = OMAP34XX_GPMC_BASE;
-		gpmc_irq = INT_34XX_GPMC_IRQ;
+		gpmc_irq = 20;
 	} else if (cpu_is_omap34xx()) {
 		ck = "gpmc_fck";
 		l = OMAP34XX_GPMC_BASE;
-		gpmc_irq = INT_34XX_GPMC_IRQ;
+		gpmc_irq = 20;
 	} else if (cpu_is_omap44xx() || soc_is_omap54xx()) {
 		/* Base address and irq number are same for OMAP4/5 */
 		ck = "gpmc_ck";
 		l = OMAP44XX_GPMC_BASE;
-		gpmc_irq = OMAP44XX_IRQ_GPMC;
+		gpmc_irq = 20 + OMAP44XX_IRQ_GIC_START;
 	}
 
 	if (WARN_ON(!ck))
arch/arm/mach-omap2/io.c +2 -0
index 4d2d981..ff6fc5b 100644
@@ -33,6 +33,8 @@
 #include <plat/multi.h>
 #include <plat/dma.h>
 
+#include <mach/hardware.h>
+
 #include "iomap.h"
 #include "voltage.h"
 #include "powerdomain.h"
arch/arm/mach-omap2/mailbox.c +2 -1
index 6875be8..e032a73 100644
@@ -16,8 +16,9 @@
 #include <linux/platform_device.h>
 #include <linux/io.h>
 #include <linux/pm_runtime.h>
+
+#include <plat/cpu.h>
 #include <plat/mailbox.h>
-#include <mach/irqs.h>
 
 #define MAILBOX_REVISION		0x000
 #define MAILBOX_MESSAGE(m)		(0x040 + 4 * (m))
arch/arm/mach-omap2/mcbsp.c +0 -1
index 4ee08c6..4576708 100644
@@ -18,7 +18,6 @@
 #include <linux/platform_device.h>
 #include <linux/slab.h>
 
-#include <mach/irqs.h>
 #include <plat/dma.h>
 #include <plat/cpu.h>
 #include <linux/platform_data/dsp-mcbsp.h>
arch/arm/mach-omap2/omap-iommu.c +0 -1
index 1be8bcb..a8d957a 100644
@@ -14,7 +14,6 @@
 #include <linux/platform_device.h>
 
 #include <plat/iommu.h>
-#include <plat/irqs.h>
 
 struct iommu_device {
 	resource_size_t base;
arch/arm/mach-omap2/omap-wakeupgen.c +1 -0
index 05fdebf..95ee7dd 100644
@@ -27,6 +27,7 @@
 
 #include <asm/hardware/gic.h>
 
+#include <mach/hardware.h>
 #include <mach/omap-wakeupgen.h>
 #include <mach/omap-secure.h>
 
arch/arm/mach-omap2/omap4-common.c +3 -4
index c29dee9..c886325 100644
@@ -16,15 +16,15 @@
 #include <linux/io.h>
 #include <linux/platform_device.h>
 #include <linux/memblock.h>
+#include <linux/of_irq.h>
+#include <linux/of_platform.h>
+#include <linux/export.h>
 
 #include <asm/hardware/gic.h>
 #include <asm/hardware/cache-l2x0.h>
 #include <asm/mach/map.h>
 #include <asm/memblock.h>
-#include <linux/of_irq.h>
-#include <linux/of_platform.h>
 
-#include <plat/irqs.h>
 #include <plat/sram.h>
 #include <plat/omap-secure.h>
 #include <plat/mmc.h>
@@ -35,7 +35,6 @@
 #include "common.h"
 #include "hsmmc.h"
 #include "omap4-sar-layout.h"
-#include <linux/export.h>
 
 #ifdef CONFIG_CACHE_L2X0
 static void __iomem *l2cache_base;
arch/arm/mach-omap2/omap_hwmod_2420_data.c +0 -1
index b305d7f..8fdc676 100644
@@ -13,7 +13,6 @@
  * XXX these should be marked initdata for multi-OMAP kernels
  */
 #include <plat/omap_hwmod.h>
-#include <mach/irqs.h>
 #include <plat/cpu.h>
 #include <plat/dma.h>
 #include <plat/serial.h>
arch/arm/mach-omap2/omap_hwmod_2430_data.c +2 -1
index 79ac236..4a6bbfd 100644
@@ -16,7 +16,6 @@
 #include <linux/platform_data/spi-omap2-mcspi.h>
 
 #include <plat/omap_hwmod.h>
-#include <mach/irqs.h>
 #include <plat/cpu.h>
 #include <plat/dma.h>
 #include <plat/serial.h>
@@ -25,6 +24,8 @@
 #include <plat/mmc.h>
 #include <plat/l3_2xxx.h>
 
+#include <plat/hardware.h>
+
 #include "omap_hwmod_common_data.h"
 
 #include "prm-regbits-24xx.h"
arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c +5 -7
index 102d76e..f19540a 100644
@@ -15,8 +15,6 @@
 #include <plat/common.h>
 #include <plat/hdq1w.h>
 
-#include <mach/irqs.h>
-
 #include "omap_hwmod_common_data.h"
 
 /* UART */
@@ -237,17 +235,17 @@ struct omap_hwmod_irq_info omap2_timer11_mpu_irqs[] = {
 };
 
 struct omap_hwmod_irq_info omap2_uart1_mpu_irqs[] = {
-	{ .irq = INT_24XX_UART1_IRQ, },
+	{ .irq = 72, },
 	{ .irq = -1 }
 };
 
 struct omap_hwmod_irq_info omap2_uart2_mpu_irqs[] = {
-	{ .irq = INT_24XX_UART2_IRQ, },
+	{ .irq = 73, },
 	{ .irq = -1 }
 };
 
 struct omap_hwmod_irq_info omap2_uart3_mpu_irqs[] = {
-	{ .irq = INT_24XX_UART3_IRQ, },
+	{ .irq = 74, },
 	{ .irq = -1 }
 };
 
@@ -257,12 +255,12 @@ struct omap_hwmod_irq_info omap2_dispc_irqs[] = {
 };
 
 struct omap_hwmod_irq_info omap2_i2c1_mpu_irqs[] = {
-	{ .irq = INT_24XX_I2C1_IRQ, },
+	{ .irq = 56, },
 	{ .irq = -1 }
 };
 
 struct omap_hwmod_irq_info omap2_i2c2_mpu_irqs[] = {
-	{ .irq = INT_24XX_I2C2_IRQ, },
+	{ .irq = 57, },
 	{ .irq = -1 }
 };
 
arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c +0 -2
index 44e4764..85c1259 100644
@@ -15,8 +15,6 @@
 #include <linux/platform_data/gpio-omap.h>
 #include <linux/platform_data/spi-omap2-mcspi.h>
 
-#include <mach/irqs.h>
-
 #include "omap_hwmod_common_data.h"
 #include "cm-regbits-24xx.h"
 #include "prm-regbits-24xx.h"
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +14 -13
index 15f617e..b9525d2 100644
@@ -20,7 +20,6 @@
 #include <linux/platform_data/spi-omap2-mcspi.h>
 
 #include <plat/omap_hwmod.h>
-#include <mach/irqs.h>
 #include <plat/cpu.h>
 #include <plat/dma.h>
 #include <plat/serial.h>
@@ -30,11 +29,13 @@
 #include <plat/mmc.h>
 #include <plat/dmtimer.h>
 
+#include <mach/hardware.h>
+#include <mach/am35xx.h>
+
 #include "omap_hwmod_common_data.h"
 #include "prm-regbits-34xx.h"
 #include "cm-regbits-34xx.h"
 #include "wd_timer.h"
-#include <mach/am35xx.h>
 
 /*
  * OMAP3xxx hardware module integration data
@@ -51,8 +52,8 @@
 
 /* L3 */
 static struct omap_hwmod_irq_info omap3xxx_l3_main_irqs[] = {
-	{ .irq = INT_34XX_L3_DBG_IRQ },
-	{ .irq = INT_34XX_L3_APP_IRQ },
+	{ .irq = 9 },
+	{ .irq = 10 },
 	{ .irq = -1 }
 };
 
@@ -490,7 +491,7 @@ static struct omap_hwmod omap3xxx_uart3_hwmod = {
 
 /* UART4 */
 static struct omap_hwmod_irq_info uart4_mpu_irqs[] = {
-	{ .irq = INT_36XX_UART4_IRQ, },
+	{ .irq = 80, },
 	{ .irq = -1 }
 };
 
@@ -518,7 +519,7 @@ static struct omap_hwmod omap36xx_uart4_hwmod = {
 };
 
 static struct omap_hwmod_irq_info am35xx_uart4_mpu_irqs[] = {
-	{ .irq = INT_35XX_UART4_IRQ, },
+	{ .irq = 84, },
 	{ .irq = -1 }
 };
 
@@ -804,7 +805,7 @@ static struct omap_i2c_dev_attr i2c3_dev_attr = {
 };
 
 static struct omap_hwmod_irq_info i2c3_mpu_irqs[] = {
-	{ .irq = INT_34XX_I2C3_IRQ, },
+	{ .irq = 61, },
 	{ .irq = -1 }
 };
 
@@ -1585,7 +1586,7 @@ static struct omap_hwmod omap34xx_mcspi3 = {
 
 /* mcspi4 */
 static struct omap_hwmod_irq_info omap34xx_mcspi4_mpu_irqs[] = {
-	{ .name = "irq", .irq = INT_34XX_SPI4_IRQ }, /* 48 */
+	{ .name = "irq", .irq = 48 },
 	{ .irq = -1 }
 };
 
@@ -1773,7 +1774,7 @@ static struct omap_hwmod omap3xxx_es3plus_mmc1_hwmod = {
 /* MMC/SD/SDIO2 */
 
 static struct omap_hwmod_irq_info omap34xx_mmc2_mpu_irqs[] = {
-	{ .irq = INT_24XX_MMC2_IRQ, },
+	{ .irq = 86, },
 	{ .irq = -1 }
 };
 
@@ -3214,10 +3215,10 @@ static struct omap_hwmod_ocp_if am35xx_l4_core__mdio = {
 };
 
 static struct omap_hwmod_irq_info am35xx_emac_mpu_irqs[] = {
-	{ .name = "rxthresh",	.irq = INT_35XX_EMAC_C0_RXTHRESH_IRQ },
-	{ .name = "rx_pulse",	.irq = INT_35XX_EMAC_C0_RX_PULSE_IRQ },
-	{ .name = "tx_pulse",	.irq = INT_35XX_EMAC_C0_TX_PULSE_IRQ },
-	{ .name = "misc_pulse",	.irq = INT_35XX_EMAC_C0_MISC_PULSE_IRQ },
+	{ .name = "rxthresh",	.irq = 67 },
+	{ .name = "rx_pulse",	.irq = 68 },
+	{ .name = "tx_pulse",	.irq = 69 },
+	{ .name = "misc_pulse",	.irq = 70 },
 	{ .irq = -1 }
 };
 
arch/arm/mach-omap2/omap_l3_noc.c +4 -2
index d15225f..f0992fd 100644
@@ -28,6 +28,8 @@
 #include <linux/kernel.h>
 #include <linux/slab.h>
 
+#include <plat/hardware.h>
+
 #include "omap_l3_noc.h"
 
 /*
@@ -190,7 +192,7 @@ static int __devinit omap4_l3_probe(struct platform_device *pdev)
 			IRQF_DISABLED, "l3-dbg-irq", l3);
 	if (ret) {
 		pr_crit("L3: request_irq failed to register for 0x%x\n",
-						OMAP44XX_IRQ_L3_DBG);
+						9 + OMAP44XX_IRQ_GIC_START);
 		goto err3;
 	}
 
@@ -200,7 +202,7 @@ static int __devinit omap4_l3_probe(struct platform_device *pdev)
 			IRQF_DISABLED, "l3-app-irq", l3);
 	if (ret) {
 		pr_crit("L3: request_irq failed to register for 0x%x\n",
-						OMAP44XX_IRQ_L3_APP);
+						10 + OMAP44XX_IRQ_GIC_START);
 		goto err4;
 	}
 
arch/arm/mach-omap2/omap_phy_internal.c +2 -0
index d52651a..d0b4dc7 100644
@@ -28,7 +28,9 @@
 #include <linux/err.h>
 #include <linux/usb.h>
 
+#include <plat/hardware.h>
 #include <plat/usb.h>
+
 #include "control.h"
 
 /* OMAP control module register for UTMI PHY */
arch/arm/mach-omap2/pm24xx.c +0 -2
index 2708a8b..8af6cd6 100644
@@ -40,8 +40,6 @@
 #include <plat/sram.h>
 #include <plat/dma.h>
 
-#include <mach/irqs.h>
-
 #include "common.h"
 #include "prm2xxx_3xxx.h"
 #include "prm-regbits-24xx.h"
arch/arm/mach-omap2/prcm.c +0 -1
index 053e24e..9c9d23c 100644
@@ -27,7 +27,6 @@
 
 #include "common.h"
 #include <plat/prcm.h>
-#include <plat/irqs.h>
 
 #include "clock.h"
 #include "clock2xxx.h"
arch/arm/mach-omap2/prm2xxx_3xxx.c +1 -2
index a0309de..9052383 100644
@@ -20,7 +20,6 @@
 #include "common.h"
 #include <plat/cpu.h>
 #include <plat/prcm.h>
-#include <plat/irqs.h>
 
 #include "vp.h"
 
@@ -40,7 +39,7 @@ static struct omap_prcm_irq_setup omap3_prcm_irq_setup = {
 	.nr_regs		= 1,
 	.irqs			= omap3_prcm_irqs,
 	.nr_irqs		= ARRAY_SIZE(omap3_prcm_irqs),
-	.irq			= INT_34XX_PRCM_MPU_IRQ,
+	.irq			= 11,
 	.read_pending_irqs	= &omap3xxx_prm_read_pending_irqs,
 	.ocp_barrier		= &omap3xxx_prm_ocp_barrier,
 	.save_and_clear_irqen	= &omap3xxx_prm_save_and_clear_irqen,
arch/arm/mach-omap2/prm44xx.c +2 -2
index bb727c2..df2cfe1 100644
@@ -18,8 +18,8 @@
 #include <linux/io.h>
 
 #include <plat/cpu.h>
-#include <plat/irqs.h>
 #include <plat/prcm.h>
+#include <plat/hardware.h>
 
 #include "iomap.h"
 #include "common.h"
@@ -40,7 +40,7 @@ static struct omap_prcm_irq_setup omap4_prcm_irq_setup = {
 	.nr_regs		= 2,
 	.irqs			= omap4_prcm_irqs,
 	.nr_irqs		= ARRAY_SIZE(omap4_prcm_irqs),
-	.irq			= OMAP44XX_IRQ_PRCM,
+	.irq			= 11 + OMAP44XX_IRQ_GIC_START,
 	.read_pending_irqs	= &omap44xx_prm_read_pending_irqs,
 	.ocp_barrier		= &omap44xx_prm_ocp_barrier,
 	.save_and_clear_irqen	= &omap44xx_prm_save_and_clear_irqen,
arch/arm/mach-omap2/prm_common.c +0 -1
index 03b126d..6b4d332 100644
@@ -26,7 +26,6 @@
 
 #include <plat/common.h>
 #include <plat/prcm.h>
-#include <plat/irqs.h>
 
 #include "prm2xxx_3xxx.h"
 #include "prm44xx.h"
arch/arm/mach-omap2/serial.c +1 -0
index 10f7f02..7345267 100644
@@ -33,6 +33,7 @@
 #include <plat/omap_hwmod.h>
 #include <plat/omap_device.h>
 #include <plat/omap-pm.h>
+#include <plat/serial.h>
 
 #include "prm2xxx_3xxx.h"
 #include "pm.h"
arch/arm/mach-omap2/timer.c +6 -4
index 2ff6d41..e1f1d09 100644
@@ -38,14 +38,17 @@
 #include <linux/slab.h>
 
 #include <asm/mach/time.h>
-#include <plat/dmtimer.h>
 #include <asm/smp_twd.h>
 #include <asm/sched_clock.h>
-#include "common.h"
+
 #include <plat/omap_hwmod.h>
 #include <plat/omap_device.h>
+#include <plat/dmtimer.h>
 #include <plat/omap-pm.h>
 
+#include <mach/hardware.h>
+
+#include "common.h"
 #include "powerdomain.h"
 
 /* Parent clocks, eventually these will come from the clock framework */
@@ -373,8 +376,7 @@ OMAP_SYS_TIMER(3_am33xx)
 #ifdef CONFIG_ARCH_OMAP4
 #ifdef CONFIG_LOCAL_TIMERS
 static DEFINE_TWD_LOCAL_TIMER(twd_local_timer,
-			      OMAP44XX_LOCAL_TWD_BASE,
-			      OMAP44XX_IRQ_LOCALTIMER);
+			      OMAP44XX_LOCAL_TWD_BASE, 29);
 #endif
 
 static void __init omap4_timer_init(void)
arch/arm/mach-omap2/twl-common.c +2 -1
index de47f17..81f9956 100644
@@ -26,6 +26,7 @@
 #include <linux/regulator/machine.h>
 #include <linux/regulator/fixed.h>
 
+#include <plat/hardware.h>
 #include <plat/i2c.h>
 #include <plat/usb.h>
 
@@ -83,7 +84,7 @@ void __init omap4_pmic_init(const char *pmic_type,
 	omap_mux_init_signal("sys_nirq1", OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE);
 	strncpy(omap4_i2c1_board_info[0].type, pmic_type,
 		sizeof(omap4_i2c1_board_info[0].type));
-	omap4_i2c1_board_info[0].irq = OMAP44XX_IRQ_SYS_1N;
+	omap4_i2c1_board_info[0].irq = 7 + OMAP44XX_IRQ_GIC_START;
 	omap4_i2c1_board_info[0].platform_data = pmic_data;
 
 	/* TWL6040 audio IC part */
arch/arm/mach-omap2/twl-common.h +2 -4
index 8fe71cf..1ddea9f 100644
@@ -1,8 +1,6 @@
 #ifndef __OMAP_PMIC_COMMON__
 #define __OMAP_PMIC_COMMON__
 
-#include <plat/irqs.h>
-
 #define TWL_COMMON_PDATA_USB		(1 << 0)
 #define TWL_COMMON_PDATA_BCI		(1 << 1)
 #define TWL_COMMON_PDATA_MADC		(1 << 2)
@@ -40,13 +38,13 @@ void omap_pmic_late_init(void);
 static inline void omap2_pmic_init(const char *pmic_type,
 				   struct twl4030_platform_data *pmic_data)
 {
-	omap_pmic_init(2, 2600, pmic_type, INT_24XX_SYS_NIRQ, pmic_data);
+	omap_pmic_init(2, 2600, pmic_type, 7, pmic_data);
 }
 
 static inline void omap3_pmic_init(const char *pmic_type,
 				   struct twl4030_platform_data *pmic_data)
 {
-	omap_pmic_init(1, 2600, pmic_type, INT_34XX_SYS_NIRQ, pmic_data);
+	omap_pmic_init(1, 2600, pmic_type, 7, pmic_data);
 }
 
 void omap4_pmic_init(const char *pmic_type,
arch/arm/mach-omap2/usb-host.c +0 -1
index dde8a11..14368c3 100644
@@ -26,7 +26,6 @@
 #include <asm/io.h>
 
 #include <mach/hardware.h>
-#include <mach/irqs.h>
 #include <plat/usb.h>
 #include <plat/omap_device.h>
 
arch/arm/mach-omap2/usb-musb.c +0 -1
index c4a5768..3f35e6c 100644
@@ -27,7 +27,6 @@
 #include <linux/usb/musb.h>
 
 #include <mach/hardware.h>
-#include <mach/irqs.h>
 #include <mach/am35xx.h>
 #include <plat/usb.h>
 #include <plat/omap_device.h>
arch/arm/plat-omap/include/plat/omap44xx.h +1 -0
index c0d478e..5da9735 100644
@@ -39,6 +39,7 @@
 #define IRQ_SIR_IRQ			0x0040
 #define OMAP44XX_GIC_DIST_BASE		0x48241000
 #define OMAP44XX_GIC_CPU_BASE		0x48240100
+#define OMAP44XX_IRQ_GIC_START		32
 #define OMAP44XX_SCU_BASE		0x48240000
 #define OMAP44XX_LOCAL_TWD_BASE		0x48240600
 #define OMAP44XX_L2CACHE_BASE		0x48242000
drivers/dma/omap-dma.c +2 -0
index ae05618..2e16627 100644
@@ -18,6 +18,8 @@
 #include <linux/spinlock.h>
 
 #include "virt-dma.h"
+
+#include <plat/cpu.h>
 #include <plat/dma.h>
 
 struct omap_dmadev {
drivers/mfd/twl-core.c +2 -0
index 1c32afe..f462ff2 100644
@@ -46,6 +46,8 @@
 #include <linux/i2c.h>
 #include <linux/i2c/twl.h>
 
+#include <plat/cpu.h>
+
 #include "twl-core.h"
 
 /*
drivers/mtd/onenand/omap2.c +5 -3
index 1b4725b..06134c9 100644
@@ -37,13 +37,15 @@
 #include <linux/slab.h>
 #include <linux/regulator/consumer.h>
 
-#include <asm/mach/flash.h>
-#include <plat/gpmc.h>
-#include <linux/platform_data/mtd-onenand-omap2.h>
 #include <asm/gpio.h>
+#include <asm/mach/flash.h>
 
+#include <plat/cpu.h>
+#include <plat/gpmc.h>
 #include <plat/dma.h>
 
+#include <linux/platform_data/mtd-onenand-omap2.h>
+
 #define DRIVER_NAME "omap2-onenand"
 
 #define ONENAND_BUFRAM_SIZE	(1024 * 5)
drivers/tty/serial/8250/8250.c +2 -2
index 8123f78..5b3f2fe 100644
@@ -2336,7 +2336,7 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios,
 			serial_port_out(port, UART_EFR, efr);
 	}
 
-#ifdef CONFIG_ARCH_OMAP
+#ifdef CONFIG_ARCH_OMAP1
 	/* Workaround to enable 115200 baud on OMAP1510 internal ports */
 	if (cpu_is_omap1510() && is_omap_port(up)) {
 		if (baud == 115200) {
@@ -2426,7 +2426,7 @@ static unsigned int serial8250_port_size(struct uart_8250_port *pt)
 {
 	if (pt->port.iotype == UPIO_AU)
 		return 0x1000;
-#ifdef CONFIG_ARCH_OMAP
+#ifdef CONFIG_ARCH_OMAP1
 	if (is_omap_port(pt))
 		return 0x16 << pt->port.regshift;
 #endif
drivers/video/omap2/dss/dispc.c +1 -0
index 5b289c5..ee9e296 100644
@@ -37,6 +37,7 @@
 #include <linux/platform_device.h>
 #include <linux/pm_runtime.h>
 
+#include <plat/cpu.h>
 #include <plat/clock.h>
 
 #include <video/omapdss.h>
drivers/video/omap2/omapfb/omapfb-main.c +3 -1
index 08ec1a7..9e6ee5c 100644
@@ -30,10 +30,12 @@
 #include <linux/platform_device.h>
 #include <linux/omapfb.h>
 
-#include <video/omapdss.h>
+#include <plat/cpu.h>
 #include <plat/vram.h>
 #include <plat/vrfb.h>
 
+#include <video/omapdss.h>
+
 #include "omapfb.h"
 
 #define MODULE_NAME     "omapfb"
sound/soc/omap/mcbsp.c +2 -1
index 4bc029d..bfdf7e0 100644
@@ -24,9 +24,10 @@
 #include <linux/delay.h>
 #include <linux/io.h>
 #include <linux/slab.h>
-
 #include <linux/platform_data/dsp-mcbsp.h>
 
+#include <plat/cpu.h>
+
 #include "mcbsp.h"
 
 static void omap_mcbsp_write(struct omap_mcbsp *mcbsp, u16 reg, u32 val)
sound/soc/omap/omap-mcbsp.c +1 -0
index deeda47..ecee212b 100644
@@ -32,6 +32,7 @@
 #include <sound/initval.h>
 #include <sound/soc.h>
 
+#include <plat/cpu.h>
 #include <plat/dma.h>
 #include <linux/platform_data/dsp-mcbsp.h>
 #include "mcbsp.h"
sound/soc/omap/omap-pcm.c +1 -0
index f0feb06..b309941 100644
@@ -30,6 +30,7 @@
 #include <sound/pcm_params.h>
 #include <sound/soc.h>
 
+#include <plat/cpu.h>
 #include <plat/dma.h>
 #include "omap-pcm.h"
 
#16 lore raw

PATCH 7/9 ARM: OMAP2+: Prepare for irqs.h removal

Hi Tony,

Quoted 22 lines · Tony Lindgren

As the interrupts should only be defined in the platform_data, and eventually coming from device tree, there's no need to define them in header files.

Let's remove the hardcoded references to irqs.h and fix up the includes so we don't rely on headers included in irqs.h. While at it, sort the includes the standard way.

 arch/arm/mach-omap2/gpmc.c                         |   11 +++++---
arch/arm/mach-omap2/gpmc.c +1 -1
 
 /* GPMC register offsets */
 #define GPMC_REVISION		0x00
 #define GPMC_SYSCONFIG		0x10
@@ -846,16 +849,16 @@ static int __init gpmc_init(void)
 			l = OMAP2420_GPMC_BASE;
 		else
 			l = OMAP34XX_GPMC_BASE;
-		gpmc_irq = INT_34XX_GPMC_IRQ;
+		gpmc_irq = 20;
 	} else if (cpu_is_omap34xx()) {

arch/arm/mach-omap2/gpmc.c static int __init gpmc_init(void) · line 861

Quoted 10 lines
arch/arm/mach-omap2/gpmc.c +2 -2
 		ck = "gpmc_fck";
 		l = OMAP34XX_GPMC_BASE;
-		gpmc_irq = INT_34XX_GPMC_IRQ;
+		gpmc_irq = 20;
 	} else if (cpu_is_omap44xx() || soc_is_omap54xx()) {
 		/* Base address and irq number are same for OMAP4/5 */
 		ck = "gpmc_ck";
 		l = OMAP44XX_GPMC_BASE;
-		gpmc_irq = OMAP44XX_IRQ_GPMC;
+		gpmc_irq = 20 + OMAP44XX_IRQ_GIC_START;

I have a suggestion to avoid above hardcoded patching on gpmc.c. With driver conversion series it again would have to be patched.

I have made a basic gpmc driver conversion, which is expected to be non-controversial. This was done over your devel-gpmc branch. It is working fine, has only 3 patches

1. Add hwmod entry
2. Adapt to hwmod
3. Basic driver conversion

Here the basic driver gets resources and clk in driver probe using con-id "fck", it has no platform data as of now

It is available @git://gitorious.org/x0148406-public/linux-kernel.git gpmc-simple-drv

Originally this was made on top of my series,
"OMAP-GPMC: generic time calc, prepare for driver"
It was modified so that it can be applied to your devel-gpmc branch.

*I am not sending the patches now to avoid confusion by way of having too many patch series*

In case you like this, let me know, I will post.

As I am proceeding with Paul's suggestion on hwmod reset, I hope Paul can take the first one.

Regards
Afzal

author maintainer
#17 lore raw

PATCH 7/9 ARM: OMAP2+: Prepare for irqs.h removal

Quoted 48 lines · Mohammed, Afzal

Hi Tony,

Quoted 22 lines · Tony Lindgren

As the interrupts should only be defined in the platform_data, and eventually coming from device tree, there's no need to define them in header files.

Let's remove the hardcoded references to irqs.h and fix up the includes so we don't rely on headers included in irqs.h. While at it, sort the includes the standard way.

 arch/arm/mach-omap2/gpmc.c                         |   11 +++++---
arch/arm/mach-omap2/gpmc.c +1 -1
 
 /* GPMC register offsets */
 #define GPMC_REVISION		0x00
 #define GPMC_SYSCONFIG		0x10
@@ -846,16 +849,16 @@ static int __init gpmc_init(void)
 			l = OMAP2420_GPMC_BASE;
 		else
 			l = OMAP34XX_GPMC_BASE;
-		gpmc_irq = INT_34XX_GPMC_IRQ;
+		gpmc_irq = 20;
 	} else if (cpu_is_omap34xx()) {

arch/arm/mach-omap2/gpmc.c static int __init gpmc_init(void) · line 861

Quoted 10 lines
arch/arm/mach-omap2/gpmc.c +2 -2
 		ck = "gpmc_fck";
 		l = OMAP34XX_GPMC_BASE;
-		gpmc_irq = INT_34XX_GPMC_IRQ;
+		gpmc_irq = 20;
 	} else if (cpu_is_omap44xx() || soc_is_omap54xx()) {
 		/* Base address and irq number are same for OMAP4/5 */
 		ck = "gpmc_ck";
 		l = OMAP44XX_GPMC_BASE;
-		gpmc_irq = OMAP44XX_IRQ_GPMC;
+		gpmc_irq = 20 + OMAP44XX_IRQ_GIC_START;

I have a suggestion to avoid above hardcoded patching on gpmc.c. With driver conversion series it again would have to be patched.

I have made a basic gpmc driver conversion, which is expected to be non-controversial. This was done over your devel-gpmc branch. It is working fine, has only 3 patches

1. Add hwmod entry
2. Adapt to hwmod
3. Basic driver conversion

Quoted 5 lines

Here the basic driver gets resources and clk in driver probe using con-id "fck", it has no platform data as of now

It is available @git://gitorious.org/x0148406-public/linux-kernel.git gpmc-simple-drv

Great, please post that. But let's get this cleanup out of the way first. It's OK if we have to go back and forth a bit if it means we can avoid dependencies between the patches as this is already all over the place.

Quoted 8 lines

Originally this was made on top of my series,
"OMAP-GPMC: generic time calc, prepare for driver"
It was modified so that it can be applied to your devel-gpmc branch.

*I am not sending the patches now to avoid confusion by way of having too many patch series*

In case you like this, let me know, I will post.

Yes please post the patches rebased on testing-cleanup branch that I just pushed. That branch is not immutable yet though as we're waiting to hear from Arnd regrading the first patch in the branch.

Quoted 2 lines

As I am proceeding with Paul's suggestion on hwmod reset, I hope Paul can take the first one.

Let's first nail down the cleanup changes though..

Tony

#18 lore raw

PATCH 7/9 ARM: OMAP2+: Prepare for irqs.h removal

Hi Tony,

Quoted 10 lines · Tony Lindgren
Quoted 4 lines · Mohammed, Afzal

*I am not sending the patches now to avoid confusion by way of having too many patch series*

In case you like this, let me know, I will post.

Yes please post the patches rebased on testing-cleanup branch that I just pushed. That branch is not immutable yet though as we're waiting to hear from Arnd regrading the first patch in the branch.

The patches rebased on testing-cleanup branch has been posted [1].

Regards
Afzal

[1] http://marc.info/?l=linux-omap&m=134683495407871&w=2

#19 lore raw

PATCH 7/9 ARM: OMAP2+: Prepare for irqs.h removal

Hi Tony,

Quoted 6 lines · Afzal
Quoted 5 lines · Tony Lindgren
Quoted 3 lines · Mohammed, Afzal

*I am not sending the patches now to avoid confusion by way of having too many patch series*

Quoted 7 lines
Quoted 5 lines
Quoted 1 line

In case you like this, let me know, I will post.

Yes please post the patches rebased on testing-cleanup branch that I just pushed. That branch is not immutable yet though as we're waiting to hear from Arnd regrading the first patch in the branch.

The patches rebased on testing-cleanup branch has been posted [1].

Latest version (v8) of patch series has been posted [A] with an enhancement, please ignore v7.

Regards
Afzal

[A] http://marc.info/?l=linux-omap&m=134684859913232&w=2

author maintainer
#20 lore raw

PATCH 7/9 ARM: OMAP2+: Prepare for irqs.h removal

In reply to Tony Lindgren
Quoted 7 lines · Tony Lindgren

As the interrupts should only be defined in the platform_data, and eventually coming from device tree, there's no need to define them in header files.

Let's remove the hardcoded references to irqs.h and fix up the includes so we don't rely on headers included in irqs.h. While at it, sort the includes the standard way.

Turns out this patch was not quite working with SPARSE_IRQ, we have to add OMAP_INTC_START for that. Also fixed up is compile for drivers/staging/tidspbridge. Updated patch below.

Regards,

Tony

From: Tony Lindgren <[email protected]>
Date: Mon, 27 Aug 2012 17:43:01 -0700
Subject: [PATCH] ARM: OMAP2+: Prepare for irqs.h removal

As the interrupts should only be defined in the platform_data, and eventually coming from device tree, there's no need to define them in header files.

Let's remove the hardcoded references to irqs.h and fix up the includes so we don't rely on headers included in irqs.h. Note that we're defining OMAP_INTC_START as 0 to the interrupts. This will be needed when we enable SPARSE_IRQ.

While at it, sort the includes the standard way, and add the trailing commas where they are missing in the related data structures.

Note that for drivers/staging/tidspbridge we just define things locally.

arch/arm/mach-omap2/board-2430sdp.c +4 -3
index cacc498..7e31981 100644
@@ -28,19 +28,20 @@
 #include <linux/io.h>
 #include <linux/gpio.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
-#include "common.h"
 #include <plat/gpmc.h>
 #include <plat/usb.h>
 #include <plat/gpmc-smc91x.h>
 
+#include <mach/hardware.h>
+
 #include <video/omapdss.h>
 #include <video/omap-panel-generic-dpi.h>
 
+#include "common.h"
 #include "mux.h"
 #include "hsmmc.h"
 #include "common-board-devices.h"
@@ -231,7 +232,7 @@ static int __init omap2430_i2c_init(void)
 	sdp2430_i2c1_boardinfo[0].irq = gpio_to_irq(78);
 	omap_register_i2c_bus(1, 100, sdp2430_i2c1_boardinfo,
 			ARRAY_SIZE(sdp2430_i2c1_boardinfo));
-	omap_pmic_init(2, 100, "twl4030", INT_24XX_SYS_NIRQ,
+	omap_pmic_init(2, 100, "twl4030", 7 + OMAP_INTC_START,
 			&sdp2430_twldata);
 	return 0;
 }
arch/arm/mach-omap2/board-4430sdp.c +1 -1
index ee82604..31456ea 100644
@@ -579,7 +579,7 @@ static int __init omap4_i2c_init(void)
 			TWL_COMMON_REGULATOR_V1V8 |
 			TWL_COMMON_REGULATOR_V2V1);
 	omap4_pmic_init("twl6030", &sdp4430_twldata,
-			&twl6040_data, OMAP44XX_IRQ_SYS_2N);
+			&twl6040_data, 119 + OMAP44XX_IRQ_GIC_START);
 	omap_register_i2c_bus(2, 400, NULL, 0);
 	omap_register_i2c_bus(3, 400, sdp4430_i2c_3_boardinfo,
 				ARRAY_SIZE(sdp4430_i2c_3_boardinfo));
arch/arm/mach-omap2/board-am3517evm.c +1 -2
index c6d63d7..9bc0b94 100644
@@ -298,8 +298,7 @@ static struct resource am3517_hecc_resources[] = {
 		.flags	= IORESOURCE_MEM,
 	},
 	{
-		.start	= INT_35XX_HECC0_IRQ,
-		.end	= INT_35XX_HECC0_IRQ,
+		.start	= 24 + OMAP_INTC_START,
 		.flags	= IORESOURCE_IRQ,
 	},
 };
arch/arm/mach-omap2/board-cm-t3517.c +3 -3
index 30b7b01..350441a 100644
@@ -38,13 +38,14 @@
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
-#include "common.h"
 #include <plat/usb.h>
 #include <linux/platform_data/mtd-nand-omap2.h>
 #include <plat/gpmc.h>
+#include <plat/serial.h>
 
 #include <mach/am35xx.h>
 
+#include "common.h"
 #include "mux.h"
 #include "control.h"
 #include "common-board-devices.h"
@@ -89,8 +90,7 @@ static struct resource cm_t3517_hecc_resources[] = {
 		.flags	= IORESOURCE_MEM,
 	},
 	{
-		.start	= INT_35XX_HECC0_IRQ,
-		.end	= INT_35XX_HECC0_IRQ,
+		.start	= 24 + OMAP_INTC_START,
 		.flags	= IORESOURCE_IRQ,
 	},
 };
arch/arm/mach-omap2/board-flash.c +1 -1
index c8d4382..bd67c4c 100644
@@ -16,8 +16,8 @@
 #include <linux/platform_device.h>
 #include <linux/mtd/physmap.h>
 #include <linux/io.h>
-#include <plat/irqs.h>
 
+#include <plat/cpu.h>
 #include <plat/gpmc.h>
 #include <linux/platform_data/mtd-nand-omap2.h>
 #include <linux/platform_data/mtd-onenand-omap2.h>
arch/arm/mach-omap2/board-igep0020.c +4 -3
index 08471a3..c6440cb 100644
@@ -23,19 +23,20 @@
 #include <linux/regulator/fixed.h>
 #include <linux/i2c/twl.h>
 #include <linux/mmc/host.h>
-
 #include <linux/mtd/nand.h>
+#include <linux/platform_data/mtd-onenand-omap2.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 
-#include "common.h"
 #include <plat/gpmc.h>
 #include <plat/usb.h>
+#include <plat/serial.h>
+
 #include <video/omapdss.h>
 #include <video/omap-panel-tfp410.h>
-#include <linux/platform_data/mtd-onenand-omap2.h>
 
+#include "common.h"
 #include "mux.h"
 #include "hsmmc.h"
 #include "sdram-numonyx-m65kxxxxam.h"
arch/arm/mach-omap2/board-n8x0.c +1 -2
index edf6559..7127068 100644
@@ -27,7 +27,6 @@
 
 #include "common.h"
 #include <plat/menelaus.h>
-#include <mach/irqs.h>
 #include <linux/platform_data/spi-omap2-mcspi.h>
 #include <linux/platform_data/mtd-onenand-omap2.h>
 #include <plat/mmc.h>
@@ -599,7 +598,7 @@ static struct menelaus_platform_data n8x0_menelaus_platform_data __initdata = {
 static struct i2c_board_info __initdata n8x0_i2c_board_info_1[] __initdata = {
 	{
 		I2C_BOARD_INFO("menelaus", 0x72),
-		.irq = INT_24XX_SYS_NIRQ,
+		.irq = 7 + OMAP_INTC_START,
 		.platform_data = &n8x0_menelaus_platform_data,
 	},
 };
arch/arm/mach-omap2/board-omap4panda.c +1 -1
index e37ee67..cbf6fd5 100644
@@ -292,7 +292,7 @@ static int __init omap4_panda_i2c_init(void)
 			TWL_COMMON_REGULATOR_V1V8 |
 			TWL_COMMON_REGULATOR_V2V1);
 	omap4_pmic_init("twl6030", &omap4_panda_twldata,
-			&twl6040_data, OMAP44XX_IRQ_SYS_2N);
+			&twl6040_data, 119 + OMAP44XX_IRQ_GIC_START);
 	omap_register_i2c_bus(2, 400, NULL, 0);
 	/*
 	 * Bus 3 is attached to the DVI port where devices like the pico DLP
arch/arm/mach-omap2/board-rm680.c +4 -2
index 4c45109..3fa9368 100644
@@ -25,9 +25,11 @@
 #include <plat/mmc.h>
 #include <plat/usb.h>
 #include <plat/gpmc.h>
-#include "common.h"
+#include <plat/serial.h>
+
 #include <linux/platform_data/mtd-onenand-omap2.h>
 
+#include "common.h"
 #include "mux.h"
 #include "hsmmc.h"
 #include "sdram-nokia.h"
@@ -84,7 +86,7 @@ static struct twl4030_platform_data rm680_twl_data = {
 static void __init rm680_i2c_init(void)
 {
 	omap3_pmic_get_config(&rm680_twl_data, TWL_COMMON_PDATA_USB, 0);
-	omap_pmic_init(1, 2900, "twl5031", INT_34XX_SYS_NIRQ, &rm680_twl_data);
+	omap_pmic_init(1, 2900, "twl5031", 7 + OMAP_INTC_START, &rm680_twl_data);
 	omap_register_i2c_bus(2, 400, NULL, 0);
 	omap_register_i2c_bus(3, 400, NULL, 0);
 }
arch/arm/mach-omap2/board-rx51-peripherals.c +1 -1
index 06e44e4..1735294 100644
@@ -1047,7 +1047,7 @@ static int __init rx51_i2c_init(void)
 	rx51_twldata.vdac->constraints.apply_uV = true;
 	rx51_twldata.vdac->constraints.name = "VDAC";
 
-	omap_pmic_init(1, 2200, "twl5030", INT_34XX_SYS_NIRQ, &rx51_twldata);
+	omap_pmic_init(1, 2200, "twl5030", 7 + OMAP_INTC_START, &rx51_twldata);
 	omap_register_i2c_bus(2, 100, rx51_peripherals_i2c_board_info_2,
 			      ARRAY_SIZE(rx51_peripherals_i2c_board_info_2));
 #if defined(CONFIG_SENSORS_LIS3_I2C) || defined(CONFIG_SENSORS_LIS3_I2C_MODULE)
arch/arm/mach-omap2/board-ti8168evm.c +1 -2
index da4679d..5387cb8 100644
@@ -20,9 +20,8 @@
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
-#include <plat/irqs.h>
-#include "common.h"
 #include <plat/usb.h>
+#include "common.h"
 
 static struct omap_musb_board_data musb_board_data = {
 	.set_phy_power	= ti81xx_musb_phy_power,
arch/arm/mach-omap2/board-zoom-debugboard.c +1 -0
index f64f441..f1100c2 100644
@@ -19,6 +19,7 @@
 
 #include <plat/gpmc.h>
 #include <plat/gpmc-smsc911x.h>
+#include <plat/serial.h>
 
 #include <mach/board-zoom.h>
 
arch/arm/mach-omap2/board-zoom-peripherals.c +3 -2
index ae5d36b..60f2516 100644
@@ -25,11 +25,12 @@
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
-#include "common.h"
 #include <plat/usb.h>
+#include <plat/serial.h>
 
 #include <mach/board-zoom.h>
 
+#include "common.h"
 #include "mux.h"
 #include "hsmmc.h"
 #include "common-board-devices.h"
@@ -279,7 +280,7 @@ static int __init omap_i2c_init(void)
 		codec_data->hs_extmute = 1;
 		codec_data->set_hs_extmute = zoom2_set_hs_extmute;
 	}
-	omap_pmic_init(1, 2400, "twl5030", INT_34XX_SYS_NIRQ, &zoom_twldata);
+	omap_pmic_init(1, 2400, "twl5030", 7 + OMAP_INTC_START, &zoom_twldata);
 	omap_register_i2c_bus(2, 400, NULL, 0);
 	omap_register_i2c_bus(3, 400, NULL, 0);
 	return 0;
arch/arm/mach-omap2/common-board-devices.c +1 -0
index 21082cb..4647455 100644
@@ -27,6 +27,7 @@
 #include <linux/platform_data/spi-omap2-mcspi.h>
 #include <linux/platform_data/mtd-nand-omap2.h>
 
+#include "common.h"
 #include "common-board-devices.h"
 
 #if defined(CONFIG_TOUCHSCREEN_ADS7846) || \
arch/arm/mach-omap2/common.h +2 -0
index 1f65b18..7e60a69 100644
@@ -31,6 +31,8 @@
 #include <plat/common.h>
 #include <asm/proc-fns.h>
 
+#define OMAP_INTC_START		0
+
 #ifdef CONFIG_SOC_OMAP2420
 extern void omap242x_map_common_io(void);
 #else
arch/arm/mach-omap2/cpuidle34xx.c +0 -1
index f2a49a4..bc27569 100644
@@ -28,7 +28,6 @@
 #include <linux/cpu_pm.h>
 
 #include <plat/prcm.h>
-#include <plat/irqs.h>
 #include "powerdomain.h"
 #include "clockdomain.h"
 
arch/arm/mach-omap2/devices.c +8 -10
index b80073f..46768b2 100644
@@ -20,17 +20,17 @@
 #include <linux/platform_data/omap4-keypad.h>
 
 #include <mach/hardware.h>
-#include <mach/irqs.h>
 #include <asm/mach-types.h>
 #include <asm/mach/map.h>
 #include <asm/pmu.h>
 
-#include "iomap.h"
 #include <plat/dma.h>
 #include <plat/omap_hwmod.h>
 #include <plat/omap_device.h>
 #include <plat/omap4-keypad.h>
 
+#include "common.h"
+#include "iomap.h"
 #include "mux.h"
 #include "control.h"
 #include "devices.h"
@@ -111,7 +111,7 @@ static struct resource omap2cam_resources[] = {
 		.flags		= IORESOURCE_MEM,
 	},
 	{
-		.start		= INT_24XX_CAM_IRQ,
+		.start		= INT_24XX_CAM_IRQ + OMAP_INTC_START,
 		.flags		= IORESOURCE_IRQ,
 	}
 };
@@ -200,7 +200,7 @@ static struct resource omap3isp_resources[] = {
 		.flags		= IORESOURCE_MEM,
 	},
 	{
-		.start		= INT_34XX_CAM_IRQ,
+		.start		= INT_34XX_CAM_IRQ + OMAP_INTC_START,
 		.flags		= IORESOURCE_IRQ,
 	}
 };
@@ -434,14 +434,12 @@ static inline void omap_init_mcspi(void) {}
 #endif
 
 static struct resource omap2_pmu_resource = {
-	.start	= 3,
-	.end	= 3,
+	.start	= 3 + OMAP_INTC_START,
 	.flags	= IORESOURCE_IRQ,
 };
 
 static struct resource omap3_pmu_resource = {
-	.start	= INT_34XX_BENCH_MPU_EMUL,
-	.end	= INT_34XX_BENCH_MPU_EMUL,
+	.start	= 3 + OMAP_INTC_START,
 	.flags	= IORESOURCE_IRQ,
 };
 
@@ -474,7 +472,7 @@ static struct resource omap2_sham_resources[] = {
 		.flags	= IORESOURCE_MEM,
 	},
 	{
-		.start	= INT_24XX_SHA1MD5,
+		.start	= INT_24XX_SHA1MD5 + OMAP_INTC_START,
 		.flags	= IORESOURCE_IRQ,
 	}
 };
@@ -492,7 +490,7 @@ static struct resource omap3_sham_resources[] = {
 		.flags	= IORESOURCE_MEM,
 	},
 	{
-		.start	= INT_34XX_SHA1MD52_IRQ,
+		.start	= INT_34XX_SHA1MD52_IRQ + OMAP_INTC_START,
 		.flags	= IORESOURCE_IRQ,
 	},
 	{
arch/arm/mach-omap2/gpmc-smc91x.c +1 -0
index 3f75ff0..e8ff2da 100644
@@ -17,6 +17,7 @@
 #include <linux/io.h>
 #include <linux/smc91x.h>
 
+#include <plat/cpu.h>
 #include <plat/gpmc.h>
 #include <plat/gpmc-smc91x.h>
 
arch/arm/mach-omap2/gpmc.c +9 -4
index 39c30d9..6388f69 100644
@@ -26,10 +26,15 @@
 #include <linux/interrupt.h>
 
 #include <asm/mach-types.h>
-#include <plat/gpmc.h>
 
+#include <plat/cpu.h>
+#include <plat/gpmc.h>
 #include <plat/sdrc.h>
 
+#include <mach/hardware.h>
+
+#include "common.h"
+
 /* GPMC register offsets */
 #define GPMC_REVISION		0x00
 #define GPMC_SYSCONFIG		0x10
@@ -846,16 +851,16 @@ static int __init gpmc_init(void)
 			l = OMAP2420_GPMC_BASE;
 		else
 			l = OMAP34XX_GPMC_BASE;
-		gpmc_irq = INT_34XX_GPMC_IRQ;
+		gpmc_irq = 20 + OMAP_INTC_START;
 	} else if (cpu_is_omap34xx()) {
 		ck = "gpmc_fck";
 		l = OMAP34XX_GPMC_BASE;
-		gpmc_irq = INT_34XX_GPMC_IRQ;
+		gpmc_irq = 20 + OMAP_INTC_START;
 	} else if (cpu_is_omap44xx() || soc_is_omap54xx()) {
 		/* Base address and irq number are same for OMAP4/5 */
 		ck = "gpmc_ck";
 		l = OMAP44XX_GPMC_BASE;
-		gpmc_irq = OMAP44XX_IRQ_GPMC;
+		gpmc_irq = 20 + OMAP44XX_IRQ_GIC_START;
 	}
 
 	if (WARN_ON(!ck))
arch/arm/mach-omap2/io.c +2 -0
index 4d2d981..ff6fc5b 100644
@@ -33,6 +33,8 @@
 #include <plat/multi.h>
 #include <plat/dma.h>
 
+#include <mach/hardware.h>
+
 #include "iomap.h"
 #include "voltage.h"
 #include "powerdomain.h"
arch/arm/mach-omap2/mailbox.c +2 -1
index 6875be8..e032a73 100644
@@ -16,8 +16,9 @@
 #include <linux/platform_device.h>
 #include <linux/io.h>
 #include <linux/pm_runtime.h>
+
+#include <plat/cpu.h>
 #include <plat/mailbox.h>
-#include <mach/irqs.h>
 
 #define MAILBOX_REVISION		0x000
 #define MAILBOX_MESSAGE(m)		(0x040 + 4 * (m))
arch/arm/mach-omap2/mcbsp.c +0 -1
index 7c510ee..3f59ab1 100644
@@ -18,7 +18,6 @@
 #include <linux/platform_device.h>
 #include <linux/slab.h>
 
-#include <mach/irqs.h>
 #include <plat/dma.h>
 #include <plat/cpu.h>
 #include <linux/platform_data/ti-mcbsp.h>
arch/arm/mach-omap2/omap-iommu.c +0 -1
index 1be8bcb..a8d957a 100644
@@ -14,7 +14,6 @@
 #include <linux/platform_device.h>
 
 #include <plat/iommu.h>
-#include <plat/irqs.h>
 
 struct iommu_device {
 	resource_size_t base;
arch/arm/mach-omap2/omap-wakeupgen.c +1 -0
index 330d4c6..74cb25d 100644
@@ -27,6 +27,7 @@
 
 #include <asm/hardware/gic.h>
 
+#include <mach/hardware.h>
 #include <mach/omap-wakeupgen.h>
 #include <mach/omap-secure.h>
 
arch/arm/mach-omap2/omap4-common.c +3 -4
index c29dee9..c886325 100644
@@ -16,15 +16,15 @@
 #include <linux/io.h>
 #include <linux/platform_device.h>
 #include <linux/memblock.h>
+#include <linux/of_irq.h>
+#include <linux/of_platform.h>
+#include <linux/export.h>
 
 #include <asm/hardware/gic.h>
 #include <asm/hardware/cache-l2x0.h>
 #include <asm/mach/map.h>
 #include <asm/memblock.h>
-#include <linux/of_irq.h>
-#include <linux/of_platform.h>
 
-#include <plat/irqs.h>
 #include <plat/sram.h>
 #include <plat/omap-secure.h>
 #include <plat/mmc.h>
@@ -35,7 +35,6 @@
 #include "common.h"
 #include "hsmmc.h"
 #include "omap4-sar-layout.h"
-#include <linux/export.h>
 
 #ifdef CONFIG_CACHE_L2X0
 static void __iomem *l2cache_base;
arch/arm/mach-omap2/omap_hwmod_2420_data.c +11 -12
index b305d7f..2acc333 100644
@@ -13,7 +13,6 @@
  * XXX these should be marked initdata for multi-OMAP kernels
  */
 #include <plat/omap_hwmod.h>
-#include <mach/irqs.h>
 #include <plat/cpu.h>
 #include <plat/dma.h>
 #include <plat/serial.h>
@@ -161,9 +160,9 @@ static struct omap_hwmod omap2420_dma_system_hwmod = {
 
 /* mailbox */
 static struct omap_hwmod_irq_info omap2420_mailbox_irqs[] = {
-	{ .name = "dsp", .irq = 26 },
-	{ .name = "iva", .irq = 34 },
-	{ .irq = -1 }
+	{ .name = "dsp", .irq = 26 + OMAP_INTC_START, },
+	{ .name = "iva", .irq = 34 + OMAP_INTC_START, },
+	{ .irq = -1 },
 };
 
 static struct omap_hwmod omap2420_mailbox_hwmod = {
@@ -198,9 +197,9 @@ static struct omap_hwmod_opt_clk mcbsp_opt_clks[] = {
 
 /* mcbsp1 */
 static struct omap_hwmod_irq_info omap2420_mcbsp1_irqs[] = {
-	{ .name = "tx", .irq = 59 },
-	{ .name = "rx", .irq = 60 },
-	{ .irq = -1 }
+	{ .name = "tx", .irq = 59 + OMAP_INTC_START, },
+	{ .name = "rx", .irq = 60 + OMAP_INTC_START, },
+	{ .irq = -1 },
 };
 
 static struct omap_hwmod omap2420_mcbsp1_hwmod = {
@@ -224,9 +223,9 @@ static struct omap_hwmod omap2420_mcbsp1_hwmod = {
 
 /* mcbsp2 */
 static struct omap_hwmod_irq_info omap2420_mcbsp2_irqs[] = {
-	{ .name = "tx", .irq = 62 },
-	{ .name = "rx", .irq = 63 },
-	{ .irq = -1 }
+	{ .name = "tx", .irq = 62 + OMAP_INTC_START, },
+	{ .name = "rx", .irq = 63 + OMAP_INTC_START, },
+	{ .irq = -1 },
 };
 
 static struct omap_hwmod omap2420_mcbsp2_hwmod = {
@@ -264,8 +263,8 @@ static struct omap_hwmod_class omap2420_msdi_hwmod_class = {
 
 /* msdi1 */
 static struct omap_hwmod_irq_info omap2420_msdi1_irqs[] = {
-	{ .irq = 83 },
-	{ .irq = -1 }
+	{ .irq = 83 + OMAP_INTC_START, },
+	{ .irq = -1 },
 };
 
 static struct omap_hwmod_dma_info omap2420_msdi1_sdma_reqs[] = {
arch/arm/mach-omap2/omap_hwmod_2430_data.c +36 -35

149 lines not on this page · raw message

arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c +53 -55

194 lines not on this page · raw message

arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c +2 -4
index 44e4764..055f735 100644
@@ -15,16 +15,14 @@
 #include <linux/platform_data/gpio-omap.h>
 #include <linux/platform_data/spi-omap2-mcspi.h>
 
-#include <mach/irqs.h>
-
 #include "omap_hwmod_common_data.h"
 #include "cm-regbits-24xx.h"
 #include "prm-regbits-24xx.h"
 #include "wd_timer.h"
 
 struct omap_hwmod_irq_info omap2xxx_timer12_mpu_irqs[] = {
-	{ .irq = 48, },
-	{ .irq = -1 }
+	{ .irq = 48 + OMAP_INTC_START, },
+	{ .irq = -1 },
 };
 
 struct omap_hwmod_dma_info omap2xxx_dss_sdma_chs[] = {
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +75 -74

333 lines not on this page · raw message

arch/arm/mach-omap2/omap_hwmod_common_data.h +1 -0
index e7e8eea..dddb677 100644
@@ -16,6 +16,7 @@
 
 #include <plat/omap_hwmod.h>
 
+#include "common.h"
 #include "display.h"
 
 /* Common address space across OMAP2xxx */
arch/arm/mach-omap2/omap_l3_noc.c +4 -2
index d15225f..f0992fd 100644
@@ -28,6 +28,8 @@
 #include <linux/kernel.h>
 #include <linux/slab.h>
 
+#include <plat/hardware.h>
+
 #include "omap_l3_noc.h"
 
 /*
@@ -190,7 +192,7 @@ static int __devinit omap4_l3_probe(struct platform_device *pdev)
 			IRQF_DISABLED, "l3-dbg-irq", l3);
 	if (ret) {
 		pr_crit("L3: request_irq failed to register for 0x%x\n",
-						OMAP44XX_IRQ_L3_DBG);
+						9 + OMAP44XX_IRQ_GIC_START);
 		goto err3;
 	}
 
@@ -200,7 +202,7 @@ static int __devinit omap4_l3_probe(struct platform_device *pdev)
 			IRQF_DISABLED, "l3-app-irq", l3);
 	if (ret) {
 		pr_crit("L3: request_irq failed to register for 0x%x\n",
-						OMAP44XX_IRQ_L3_APP);
+						10 + OMAP44XX_IRQ_GIC_START);
 		goto err4;
 	}
 
arch/arm/mach-omap2/omap_phy_internal.c +2 -0
index d52651a..d0b4dc7 100644
@@ -28,7 +28,9 @@
 #include <linux/err.h>
 #include <linux/usb.h>
 
+#include <plat/hardware.h>
 #include <plat/usb.h>
+
 #include "control.h"
 
 /* OMAP control module register for UTMI PHY */
arch/arm/mach-omap2/pm24xx.c +0 -2
index 2708a8b..8af6cd6 100644
@@ -40,8 +40,6 @@
 #include <plat/sram.h>
 #include <plat/dma.h>
 
-#include <mach/irqs.h>
-
 #include "common.h"
 #include "prm2xxx_3xxx.h"
 #include "prm-regbits-24xx.h"
arch/arm/mach-omap2/prcm.c +0 -1
index 053e24e..9c9d23c 100644
@@ -27,7 +27,6 @@
 
 #include "common.h"
 #include <plat/prcm.h>
-#include <plat/irqs.h>
 
 #include "clock.h"
 #include "clock2xxx.h"
arch/arm/mach-omap2/prm2xxx_3xxx.c +1 -2
index a0309de..3601763 100644
@@ -20,7 +20,6 @@
 #include "common.h"
 #include <plat/cpu.h>
 #include <plat/prcm.h>
-#include <plat/irqs.h>
 
 #include "vp.h"
 
@@ -40,7 +39,7 @@ static struct omap_prcm_irq_setup omap3_prcm_irq_setup = {
 	.nr_regs		= 1,
 	.irqs			= omap3_prcm_irqs,
 	.nr_irqs		= ARRAY_SIZE(omap3_prcm_irqs),
-	.irq			= INT_34XX_PRCM_MPU_IRQ,
+	.irq			= 11 + OMAP_INTC_START,
 	.read_pending_irqs	= &omap3xxx_prm_read_pending_irqs,
 	.ocp_barrier		= &omap3xxx_prm_ocp_barrier,
 	.save_and_clear_irqen	= &omap3xxx_prm_save_and_clear_irqen,
arch/arm/mach-omap2/prm44xx.c +2 -2
index bb727c2..df2cfe1 100644
@@ -18,8 +18,8 @@
 #include <linux/io.h>
 
 #include <plat/cpu.h>
-#include <plat/irqs.h>
 #include <plat/prcm.h>
+#include <plat/hardware.h>
 
 #include "iomap.h"
 #include "common.h"
@@ -40,7 +40,7 @@ static struct omap_prcm_irq_setup omap4_prcm_irq_setup = {
 	.nr_regs		= 2,
 	.irqs			= omap4_prcm_irqs,
 	.nr_irqs		= ARRAY_SIZE(omap4_prcm_irqs),
-	.irq			= OMAP44XX_IRQ_PRCM,
+	.irq			= 11 + OMAP44XX_IRQ_GIC_START,
 	.read_pending_irqs	= &omap44xx_prm_read_pending_irqs,
 	.ocp_barrier		= &omap44xx_prm_ocp_barrier,
 	.save_and_clear_irqen	= &omap44xx_prm_save_and_clear_irqen,
arch/arm/mach-omap2/prm_common.c +0 -1
index 03b126d..6b4d332 100644
@@ -26,7 +26,6 @@
 
 #include <plat/common.h>
 #include <plat/prcm.h>
-#include <plat/irqs.h>
 
 #include "prm2xxx_3xxx.h"
 #include "prm44xx.h"
arch/arm/mach-omap2/serial.c +1 -0
index 10f7f02..7345267 100644
@@ -33,6 +33,7 @@
 #include <plat/omap_hwmod.h>
 #include <plat/omap_device.h>
 #include <plat/omap-pm.h>
+#include <plat/serial.h>
 
 #include "prm2xxx_3xxx.h"
 #include "pm.h"
arch/arm/mach-omap2/timer.c +6 -4
index 2ba4f57..acfa8f3 100644
@@ -38,14 +38,17 @@
 #include <linux/slab.h>
 
 #include <asm/mach/time.h>
-#include <plat/dmtimer.h>
 #include <asm/smp_twd.h>
 #include <asm/sched_clock.h>
-#include "common.h"
+
 #include <plat/omap_hwmod.h>
 #include <plat/omap_device.h>
+#include <plat/dmtimer.h>
 #include <plat/omap-pm.h>
 
+#include <mach/hardware.h>
+
+#include "common.h"
 #include "powerdomain.h"
 
 /* Parent clocks, eventually these will come from the clock framework */
@@ -380,8 +383,7 @@ OMAP_SYS_TIMER(3_am33xx)
 #ifdef CONFIG_ARCH_OMAP4
 #ifdef CONFIG_LOCAL_TIMERS
 static DEFINE_TWD_LOCAL_TIMER(twd_local_timer,
-			      OMAP44XX_LOCAL_TWD_BASE,
-			      OMAP44XX_IRQ_LOCALTIMER);
+			      OMAP44XX_LOCAL_TWD_BASE, 29 + OMAP_INTC_START);
 #endif
 
 static void __init omap4_timer_init(void)
arch/arm/mach-omap2/twl-common.c +2 -1
index db5ff66..b0384ce 100644
@@ -26,6 +26,7 @@
 #include <linux/regulator/machine.h>
 #include <linux/regulator/fixed.h>
 
+#include <plat/hardware.h>
 #include <plat/i2c.h>
 #include <plat/usb.h>
 
@@ -84,7 +85,7 @@ void __init omap4_pmic_init(const char *pmic_type,
 	omap_mux_init_signal("sys_nirq1", OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE);
 	strncpy(omap4_i2c1_board_info[0].type, pmic_type,
 		sizeof(omap4_i2c1_board_info[0].type));
-	omap4_i2c1_board_info[0].irq = OMAP44XX_IRQ_SYS_1N;
+	omap4_i2c1_board_info[0].irq = 7 + OMAP44XX_IRQ_GIC_START;
 	omap4_i2c1_board_info[0].platform_data = pmic_data;
 
 	/* TWL6040 audio IC part */
arch/arm/mach-omap2/twl-common.h +3 -3
index 8fe71cf..d109c09 100644
@@ -1,7 +1,7 @@
 #ifndef __OMAP_PMIC_COMMON__
 #define __OMAP_PMIC_COMMON__
 
-#include <plat/irqs.h>
+#include "common.h"
 
 #define TWL_COMMON_PDATA_USB		(1 << 0)
 #define TWL_COMMON_PDATA_BCI		(1 << 1)
@@ -40,13 +40,13 @@ void omap_pmic_late_init(void);
 static inline void omap2_pmic_init(const char *pmic_type,
 				   struct twl4030_platform_data *pmic_data)
 {
-	omap_pmic_init(2, 2600, pmic_type, INT_24XX_SYS_NIRQ, pmic_data);
+	omap_pmic_init(2, 2600, pmic_type, 7 + OMAP_INTC_START, pmic_data);
 }
 
 static inline void omap3_pmic_init(const char *pmic_type,
 				   struct twl4030_platform_data *pmic_data)
 {
-	omap_pmic_init(1, 2600, pmic_type, INT_34XX_SYS_NIRQ, pmic_data);
+	omap_pmic_init(1, 2600, pmic_type, 7 + OMAP_INTC_START, pmic_data);
 }
 
 void omap4_pmic_init(const char *pmic_type,
arch/arm/mach-omap2/usb-host.c +0 -1
index dde8a11..14368c3 100644
@@ -26,7 +26,6 @@
 #include <asm/io.h>
 
 #include <mach/hardware.h>
-#include <mach/irqs.h>
 #include <plat/usb.h>
 #include <plat/omap_device.h>
 
arch/arm/mach-omap2/usb-musb.c +0 -1
index c4a5768..3f35e6c 100644
@@ -27,7 +27,6 @@
 #include <linux/usb/musb.h>
 
 #include <mach/hardware.h>
-#include <mach/irqs.h>
 #include <mach/am35xx.h>
 #include <plat/usb.h>
 #include <plat/omap_device.h>
arch/arm/plat-omap/include/plat/omap44xx.h +1 -0
index c0d478e..5da9735 100644
@@ -39,6 +39,7 @@
 #define IRQ_SIR_IRQ			0x0040
 #define OMAP44XX_GIC_DIST_BASE		0x48241000
 #define OMAP44XX_GIC_CPU_BASE		0x48240100
+#define OMAP44XX_IRQ_GIC_START		32
 #define OMAP44XX_SCU_BASE		0x48240000
 #define OMAP44XX_LOCAL_TWD_BASE		0x48240600
 #define OMAP44XX_L2CACHE_BASE		0x48242000
drivers/dma/omap-dma.c +2 -0
index ae05618..2e16627 100644
@@ -18,6 +18,8 @@
 #include <linux/spinlock.h>
 
 #include "virt-dma.h"
+
+#include <plat/cpu.h>
 #include <plat/dma.h>
 
 struct omap_dmadev {
drivers/mfd/twl-core.c +2 -0
index 1c32afe..f462ff2 100644
@@ -46,6 +46,8 @@
 #include <linux/i2c.h>
 #include <linux/i2c/twl.h>
 
+#include <plat/cpu.h>
+
 #include "twl-core.h"
 
 /*
drivers/mtd/onenand/omap2.c +5 -3
index 1b4725b..06134c9 100644
@@ -37,13 +37,15 @@
 #include <linux/slab.h>
 #include <linux/regulator/consumer.h>
 
-#include <asm/mach/flash.h>
-#include <plat/gpmc.h>
-#include <linux/platform_data/mtd-onenand-omap2.h>
 #include <asm/gpio.h>
+#include <asm/mach/flash.h>
 
+#include <plat/cpu.h>
+#include <plat/gpmc.h>
 #include <plat/dma.h>
 
+#include <linux/platform_data/mtd-onenand-omap2.h>
+
 #define DRIVER_NAME "omap2-onenand"
 
 #define ONENAND_BUFRAM_SIZE	(1024 * 5)
drivers/staging/tidspbridge/core/dsp-clock.c +2 -0
index 69f0cdf..0e9b16e 100644
@@ -16,6 +16,8 @@
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  */
 
+#define L4_34XX_BASE		0x48000000
+
 #include <linux/types.h>
 
 /*  ----------------------------------- Host OS */
drivers/staging/tidspbridge/core/tiomap3430.c +2 -2
index 7bf55c4..24a5eec 100644
@@ -415,10 +415,10 @@ static int bridge_brd_start(struct bridge_dev_context *dev_ctxt,
 		/* Assert RST1 i.e only the RST only for DSP megacell */
 		if (!status) {
 			/*
-			 * XXX: ioremapping  MUST be removed once ctrl
+			 * XXX: OMAP343X_CTRL_BASE ioremapping  MUST be removed once ctrl
 			 * function is made available.
 			 */
-			void __iomem *ctrl = ioremap(OMAP343X_CTRL_BASE, SZ_4K);
+			void __iomem *ctrl = ioremap(0x48002000, SZ_4K);
 			if (!ctrl)
 				return -ENOMEM;
 
drivers/staging/tidspbridge/core/wdt.c +2 -1
index 870f934..1ed1474 100644
@@ -25,7 +25,8 @@
 #include <dspbridge/host_os.h>
 
 
-#define OMAP34XX_WDT3_BASE 		(L4_PER_34XX_BASE + 0x30000)
+#define OMAP34XX_WDT3_BASE 		(0x49000000 + 0x30000)
+#define INT_34XX_WDT3_IRQ 		36
 
 static struct dsp_wdt_setting dsp_wdt;
 
drivers/tty/serial/8250/8250.c +2 -2
index 8123f78..5b3f2fe 100644
@@ -2336,7 +2336,7 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios,
 			serial_port_out(port, UART_EFR, efr);
 	}
 
-#ifdef CONFIG_ARCH_OMAP
+#ifdef CONFIG_ARCH_OMAP1
 	/* Workaround to enable 115200 baud on OMAP1510 internal ports */
 	if (cpu_is_omap1510() && is_omap_port(up)) {
 		if (baud == 115200) {
@@ -2426,7 +2426,7 @@ static unsigned int serial8250_port_size(struct uart_8250_port *pt)
 {
 	if (pt->port.iotype == UPIO_AU)
 		return 0x1000;
-#ifdef CONFIG_ARCH_OMAP
+#ifdef CONFIG_ARCH_OMAP1
 	if (is_omap_port(pt))
 		return 0x16 << pt->port.regshift;
 #endif
drivers/video/omap2/dss/dispc.c +1 -0
index 5b289c5..ee9e296 100644
@@ -37,6 +37,7 @@
 #include <linux/platform_device.h>
 #include <linux/pm_runtime.h>
 
+#include <plat/cpu.h>
 #include <plat/clock.h>
 
 #include <video/omapdss.h>
drivers/video/omap2/omapfb/omapfb-main.c +3 -1
index 08ec1a7..9e6ee5c 100644
@@ -30,10 +30,12 @@
 #include <linux/platform_device.h>
 #include <linux/omapfb.h>
 
-#include <video/omapdss.h>
+#include <plat/cpu.h>
 #include <plat/vram.h>
 #include <plat/vrfb.h>
 
+#include <video/omapdss.h>
+
 #include "omapfb.h"
 
 #define MODULE_NAME     "omapfb"
sound/soc/omap/mcbsp.c +2 -1
index 8bfd857..3eb81e0 100644
@@ -24,9 +24,10 @@
 #include <linux/delay.h>
 #include <linux/io.h>
 #include <linux/slab.h>
-
 #include <linux/platform_data/ti-mcbsp.h>
 
+#include <plat/cpu.h>
+
 #include "mcbsp.h"
 
 static void omap_mcbsp_write(struct omap_mcbsp *mcbsp, u16 reg, u32 val)
sound/soc/omap/omap-mcbsp.c +1 -0
index c6ff593..63a844a 100644
@@ -32,6 +32,7 @@
 #include <sound/initval.h>
 #include <sound/soc.h>
 
+#include <plat/cpu.h>
 #include <plat/dma.h>
 #include <linux/platform_data/ti-mcbsp.h>
 #include "mcbsp.h"
sound/soc/omap/omap-pcm.c +1 -0
index f0feb06..b309941 100644
@@ -30,6 +30,7 @@
 #include <sound/pcm_params.h>
 #include <sound/soc.h>
 
+#include <plat/cpu.h>
 #include <plat/dma.h>
 #include "omap-pcm.h"
 
author maintainer
#21 lore raw

PATCH 8/9 ARM: OMAP2+: Remove hardcoded IRQs and enable SPARSE_IRQ

In reply to Tony Lindgren

Remove hardcoded IRQs in irqs.h and related files as these are no longer needed.

---
 arch/arm/mach-omap2/include/mach/irqs.h     |    2 
 arch/arm/plat-omap/Kconfig                  |    1 
 arch/arm/plat-omap/include/plat/irqs-44xx.h |  144 ---------------------
 arch/arm/plat-omap/include/plat/irqs.h      |  183 ---------------------------
 4 files changed, 2 insertions(+), 328 deletions(-)
 delete mode 100644 arch/arm/plat-omap/include/plat/irqs-44xx.h
arch/arm/mach-omap2/include/mach/irqs.h +0 -2
index 44dab77..ba5282c 100644
@@ -1,5 +1,3 @@
 /*
  * arch/arm/mach-omap2/include/mach/irqs.h
  */
-
-#include <plat/irqs.h>
arch/arm/plat-omap/Kconfig +1 -0
index dd36eba..d15a4a6 100644
@@ -25,6 +25,7 @@ config ARCH_OMAP2PLUS
 	bool "TI OMAP2/3/4"
 	select CLKDEV_LOOKUP
 	select GENERIC_IRQ_CHIP
+	select SPARSE_IRQ
 	select OMAP_DM_TIMER
 	select USE_OF
 	select PROC_DEVICETREE if PROC_FS
arch/arm/plat-omap/include/plat/irqs-44xx.h deleted +0 -144

144 lines not on this page · raw message

arch/arm/plat-omap/include/plat/irqs.h +1 -182

201 lines not on this page · raw message

author maintainer
#22 lore raw

PATCH 8/9 ARM: OMAP2+: Remove hardcoded IRQs and enable SPARSE_IRQ

Quoted 2 lines · Tony Lindgren

Remove hardcoded IRQs in irqs.h and related files as these are no longer needed.

Here's a version that actually boots properly on omap2/3/4. Note that for omap4 also patch "[PATCH] ARM: OMAP4: Fix array size for irq_target_cpu" is needed.

Regards,

Tony

From: Tony Lindgren <[email protected]>
Date: Mon, 27 Aug 2012 17:43:01 -0700
Subject: [PATCH] ARM: OMAP2+: Remove hardcoded IRQs and enable SPARSE_IRQ

Remove hardcoded IRQs in irqs.h and related files as these are no longer needed.

arch/arm/mach-omap2/common.h +2 -1
index 7e60a69..4cdb08c 100644
@@ -26,12 +26,13 @@
 #define __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H
 #ifndef __ASSEMBLER__
 
+#include <linux/irq.h>
 #include <linux/delay.h>
 #include <linux/i2c/twl.h>
 #include <plat/common.h>
 #include <asm/proc-fns.h>
 
-#define OMAP_INTC_START		0
+#define OMAP_INTC_START		NR_IRQS
 
 #ifdef CONFIG_SOC_OMAP2420
 extern void omap242x_map_common_io(void);
arch/arm/mach-omap2/include/mach/irqs.h +0 -2
index 44dab77..ba5282c 100644
@@ -1,5 +1,3 @@
 /*
  * arch/arm/mach-omap2/include/mach/irqs.h
  */
-
-#include <plat/irqs.h>
arch/arm/plat-omap/Kconfig +1 -0
index dd36eba..d15a4a6 100644
@@ -25,6 +25,7 @@ config ARCH_OMAP2PLUS
 	bool "TI OMAP2/3/4"
 	select CLKDEV_LOOKUP
 	select GENERIC_IRQ_CHIP
+	select SPARSE_IRQ
 	select OMAP_DM_TIMER
 	select USE_OF
 	select PROC_DEVICETREE if PROC_FS
arch/arm/plat-omap/include/plat/irqs-44xx.h deleted +0 -144

144 lines not on this page · raw message

arch/arm/plat-omap/include/plat/irqs.h +1 -182

201 lines not on this page · raw message

drivers/staging/tidspbridge/core/wdt.c +1 -1
index 1ed1474..7a6470f 100644
@@ -26,7 +26,7 @@
 
 
 #define OMAP34XX_WDT3_BASE 		(0x49000000 + 0x30000)
-#define INT_34XX_WDT3_IRQ 		36
+#define INT_34XX_WDT3_IRQ 		(36 + NR_IRQS)
 
 static struct dsp_wdt_setting dsp_wdt;
 
author maintainer
#23 lore raw

PATCH 9/9 ARM: OMAP1: Move plat/irqs.h to mach/irqs.h

In reply to Tony Lindgren

This is now omap1 specific files.

---
 arch/arm/mach-omap1/ams-delta-fiq-handler.S      |    1 
 arch/arm/mach-omap1/dma.c                        |    3 
 arch/arm/mach-omap1/include/mach/ams-delta-fiq.h |    2 
 arch/arm/mach-omap1/include/mach/irqs.h          |  267 ++++++++++++++++++++++
 arch/arm/plat-omap/include/plat/irqs.h           |  268 ----------------------
 5 files changed, 268 insertions(+), 273 deletions(-)
 delete mode 100644 arch/arm/plat-omap/include/plat/irqs.h
arch/arm/mach-omap1/ams-delta-fiq-handler.S +1 -0
index a051cb8..d2b6acc 100644
@@ -18,6 +18,7 @@
 
 #include <plat/board-ams-delta.h>
 
+#include <mach/irqs.h>
 #include <mach/ams-delta-fiq.h>
 
 #include "iomap.h"
arch/arm/mach-omap1/dma.c +2 -1
index 3ef7d52..b0b0f0f 100644
@@ -27,7 +27,8 @@
 
 #include <plat/dma.h>
 #include <plat/tc.h>
-#include <plat/irqs.h>
+
+#include <mach/irqs.h>
 
 #define OMAP1_DMA_BASE			(0xfffed800)
 #define OMAP1_LOGICAL_DMA_CH_COUNT	17
arch/arm/mach-omap1/include/mach/ams-delta-fiq.h +0 -2
index 23eed00..adb5e76 100644
@@ -14,8 +14,6 @@
 #ifndef __AMS_DELTA_FIQ_H
 #define __AMS_DELTA_FIQ_H
 
-#include <plat/irqs.h>
-
 /*
  * Interrupt number used for passing control from FIQ to IRQ.
  * IRQ12, described as reserved, has been selected.
arch/arm/mach-omap1/include/mach/irqs.h +265 -2

270 lines not on this page · raw message

arch/arm/plat-omap/include/plat/irqs.h deleted +0 -268

268 lines not on this page · raw message

#24 lore raw

cover Clean up hardcoded IRQs for mach-omap2, enable SPARSE_IRQ, plaform_data/gpio-omap.h

In reply to Tony Lindgren
Quoted 10 lines · Tony Lindgren

Hi all,

Here's the first set of omap header clean-up patches needed for single zImage support. This series is based v3.6-rc3 and the following patches to avoid merge conflicts with the includes:

- Arnd's patch "ARM: omap: move platform_data definitions"
- Igor's series "ARM: OMAP: cleanup plat/board.h file"
- Afzal's series "Prepare for GPMC driver conversion (w.r.t MTD)"

Looks like I can drop my omap gpio changes with this. Do you have a git tree with this?

Rob

Quoted 119 lines

Regards,

Tony

---

Tony Lindgren (9):
ARM: OMAP1: Move define of OMAP_LCD_DMA to dma.h
ARM: OMAP1: Define OMAP1_INT_I2C locally
ARM: OMAP2+: Make INTCPS_NR_IRQS local for mach-omap2/irq.c
ARM: OMAP2+: Remove unused nand_irq for GPMC
ARM: OMAP2+: Remove hardcoded twl4030 gpio_base, irq_base and irq_end
ARM: OMAP: Move gpio.h to include/linux/platform_data
ARM: OMAP2+: Prepare for irqs.h removal
ARM: OMAP2+: Remove hardcoded IRQs and enable SPARSE_IRQ
ARM: OMAP1: Move plat/irqs.h to mach/irqs.h

 arch/arm/mach-omap1/ams-delta-fiq-handler.S        |    1 
 arch/arm/mach-omap1/board-ams-delta.c              |    3 
 arch/arm/mach-omap1/board-osk.c                    |    1 
 arch/arm/mach-omap1/dma.c                          |    3 
 arch/arm/mach-omap1/gpio15xx.c                     |    1 
 arch/arm/mach-omap1/gpio16xx.c                     |    1 
 arch/arm/mach-omap1/gpio7xx.c                      |    1 
 arch/arm/mach-omap1/include/mach/ams-delta-fiq.h   |    2 
 arch/arm/mach-omap1/include/mach/gpio.h            |    2 
 arch/arm/mach-omap1/include/mach/irqs.h            |  267 ++++++++++++
 arch/arm/mach-omap1/leds-h2p2-debug.c              |    4 
 arch/arm/mach-omap1/leds.c                         |    1 
 arch/arm/mach-omap2/board-2430sdp.c                |   10 
 arch/arm/mach-omap2/board-3430sdp.c                |    3 
 arch/arm/mach-omap2/board-4430sdp.c                |    3 
 arch/arm/mach-omap2/board-am3517evm.c              |   12 -
 arch/arm/mach-omap2/board-cm-t35.c                 |   15 -
 arch/arm/mach-omap2/board-cm-t3517.c               |    6 
 arch/arm/mach-omap2/board-devkit8000.c             |    3 
 arch/arm/mach-omap2/board-flash.c                  |    3 
 arch/arm/mach-omap2/board-igep0020.c               |   10 
 arch/arm/mach-omap2/board-ldp.c                    |    3 
 arch/arm/mach-omap2/board-n8x0.c                   |    3 
 arch/arm/mach-omap2/board-omap3beagle.c            |    3 
 arch/arm/mach-omap2/board-omap3evm.c               |    3 
 arch/arm/mach-omap2/board-omap3logic.c             |    3 
 arch/arm/mach-omap2/board-omap3pandora.c           |    3 
 arch/arm/mach-omap2/board-omap3stalker.c           |    3 
 arch/arm/mach-omap2/board-omap3touchbook.c         |    3 
 arch/arm/mach-omap2/board-omap4panda.c             |    3 
 arch/arm/mach-omap2/board-overo.c                  |    3 
 arch/arm/mach-omap2/board-rm680.c                  |    9 
 arch/arm/mach-omap2/board-rx51-peripherals.c       |    5 
 arch/arm/mach-omap2/board-ti8168evm.c              |    3 
 arch/arm/mach-omap2/board-zoom-debugboard.c        |    1 
 arch/arm/mach-omap2/board-zoom-display.c           |    6 
 arch/arm/mach-omap2/board-zoom-peripherals.c       |    9 
 arch/arm/mach-omap2/cpuidle34xx.c                  |    1 
 arch/arm/mach-omap2/devices.c                      |    7 
 arch/arm/mach-omap2/gpio.c                         |    1 
 arch/arm/mach-omap2/gpmc-smc91x.c                  |    1 
 arch/arm/mach-omap2/gpmc.c                         |   11 
 arch/arm/mach-omap2/hsmmc.c                        |    5 
 arch/arm/mach-omap2/include/mach/gpio.h            |    2 
 arch/arm/mach-omap2/include/mach/irqs.h            |    2 
 arch/arm/mach-omap2/io.c                           |    2 
 arch/arm/mach-omap2/irq.c                          |    2 
 arch/arm/mach-omap2/mailbox.c                      |    3 
 arch/arm/mach-omap2/mcbsp.c                        |    1 
 arch/arm/mach-omap2/msdi.c                         |    1 
 arch/arm/mach-omap2/omap-iommu.c                   |    1 
 arch/arm/mach-omap2/omap-wakeupgen.c               |    1 
 arch/arm/mach-omap2/omap4-common.c                 |    7 
 arch/arm/mach-omap2/omap_hwmod_2420_data.c         |    2 
 arch/arm/mach-omap2/omap_hwmod_2430_data.c         |    9 
 .../mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c |   12 -
 arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c |    4 
 arch/arm/mach-omap2/omap_hwmod_3xxx_data.c         |   33 +
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c         |    6 
 arch/arm/mach-omap2/omap_l3_noc.c                  |    6 
 arch/arm/mach-omap2/omap_phy_internal.c            |    2 
 arch/arm/mach-omap2/pm24xx.c                       |    3 
 arch/arm/mach-omap2/pm34xx.c                       |    2 
 arch/arm/mach-omap2/prcm.c                         |    1 
 arch/arm/mach-omap2/prm2xxx_3xxx.c                 |    3 
 arch/arm/mach-omap2/prm44xx.c                      |    4 
 arch/arm/mach-omap2/prm_common.c                   |    1 
 arch/arm/mach-omap2/serial.c                       |    1 
 arch/arm/mach-omap2/timer.c                        |   10 
 arch/arm/mach-omap2/twl-common.c                   |    3 
 arch/arm/mach-omap2/twl-common.h                   |    6 
 arch/arm/mach-omap2/usb-host.c                     |    1 
 arch/arm/mach-omap2/usb-musb.c                     |    1 
 arch/arm/plat-omap/Kconfig                         |    1 
 arch/arm/plat-omap/i2c.c                           |    3 
 arch/arm/plat-omap/include/plat/dma.h              |    2 
 arch/arm/plat-omap/include/plat/irqs-44xx.h        |  144 ------
 arch/arm/plat-omap/include/plat/irqs.h             |  453 --------------------
 arch/arm/plat-omap/include/plat/omap44xx.h         |    1 
 drivers/dma/omap-dma.c                             |    2 
 drivers/gpio/gpio-omap.c                           |   15 -
 drivers/gpio/gpio-twl4030.c                        |   15 -
 drivers/mfd/twl-core.c                             |    2 
 drivers/mtd/nand/ams-delta.c                       |    8 
 drivers/mtd/onenand/omap2.c                        |    8 
 drivers/tty/serial/8250/8250.c                     |    4 
 drivers/video/omap2/dss/dispc.c                    |    1 
 drivers/video/omap2/omapfb/omapfb-main.c           |    4 
 include/linux/i2c/twl.h                            |    3 
 include/linux/mfd/twl6040.h                        |    2 
 include/linux/platform_data/gpio-omap.h            |   15 -
 include/linux/platform_data/mtd-nand-omap2.h       |    1 
 sound/soc/omap/mcbsp.c                             |    3 
 sound/soc/omap/omap-mcbsp.c                        |    1 
 sound/soc/omap/omap-pcm.c                          |    1 
 sound/soc/omap/sdp3430.c                           |    1 
 96 files changed, 455 insertions(+), 808 deletions(-)
 delete mode 100644 arch/arm/plat-omap/include/plat/irqs-44xx.h
 delete mode 100644 arch/arm/plat-omap/include/plat/irqs.h
 rename arch/arm/plat-omap/include/plat/gpio.h => include/linux/platform_data/gpio-omap.h (94%)
author maintainer
#25 lore raw

cover Clean up hardcoded IRQs for mach-omap2, enable SPARSE_IRQ, plaform_data/gpio-omap.h

Quoted 7 lines · Rob Herring
Quoted 6 lines · Tony Lindgren

Hi all,

Here's the first set of omap header clean-up patches needed for single zImage support. This series is based v3.6-rc3 and the following patches to avoid merge conflicts with the includes:

Quoted 7 lines
Quoted 4 lines

- Arnd's patch "ARM: omap: move platform_data definitions"
- Igor's series "ARM: OMAP: cleanup plat/board.h file"
- Afzal's series "Prepare for GPMC driver conversion (w.r.t MTD)"

Looks like I can drop my omap gpio changes with this. Do you have a git tree with this?

Yes no need for those changes for omap :) I have not pushed out any branch yet, I'm waiting on the scripted platform data move Arnd announced later on in the "[PATCH 4/4] [RFC] ARM: treewide: manually change more" thread that are now in the arm-soc tree testing/platform-data branch.

Regards,

Tony