1 Index: linux-3.1/arch/arm/mach-omap2/board-n8x0.c
2 ===================================================================
3 --- linux-3.1.orig/arch/arm/mach-omap2/board-n8x0.c 2011-10-30 00:48:29.505056863 +0200
4 +++ linux-3.1/arch/arm/mach-omap2/board-n8x0.c 2011-10-30 00:48:47.357044479 +0200
6 #include <linux/delay.h>
7 #include <linux/gpio.h>
8 #include <linux/init.h>
9 +#include <linux/irq.h>
11 #include <linux/stddef.h>
12 +#include <linux/platform_device.h>
13 #include <linux/i2c.h>
14 #include <linux/spi/spi.h>
15 #include <linux/usb/musb.h>
17 #include <plat/onenand.h>
19 #include <plat/serial.h>
20 +#include <plat/cbus.h>
24 @@ -193,6 +196,114 @@ static struct omap_onenand_platform_data
28 +#if defined(CONFIG_CBUS) || defined(CONFIG_CBUS_MODULE)
30 +static struct cbus_host_platform_data n8x0_cbus_data = {
36 +static struct platform_device n8x0_cbus_device = {
40 + .platform_data = &n8x0_cbus_data,
44 +static struct resource retu_resource[] = {
46 + .start = -EINVAL, /* set later */
47 + .flags = IORESOURCE_IRQ,
51 +static struct cbus_retu_platform_data n8x0_retu_data = {
52 + .irq_base = CBUS_RETU_IRQ_BASE,
53 + .irq_end = CBUS_RETU_IRQ_END,
54 + .devid = CBUS_RETU_DEVICE_ID,
57 +static struct platform_device retu_device = {
60 + .resource = retu_resource,
61 + .num_resources = ARRAY_SIZE(retu_resource),
63 + .platform_data = &n8x0_retu_data,
67 +static struct resource tahvo_resource[] = {
69 + .start = -EINVAL, /* set later */
70 + .flags = IORESOURCE_IRQ,
74 +static struct platform_device tahvo_device = {
77 + .resource = tahvo_resource,
78 + .num_resources = ARRAY_SIZE(tahvo_resource),
81 +static struct platform_device tahvo_usb_device = {
82 + .name = "tahvo-usb",
86 +static void __init n8x0_cbus_init(void)
90 + platform_device_register(&n8x0_cbus_device);
92 + ret = gpio_request(108, "RETU irq");
94 + pr_err("retu: Unable to reserve IRQ GPIO\n");
98 + ret = gpio_direction_input(108);
100 + pr_err("retu: Unable to change gpio direction\n");
105 + irq_set_irq_type(gpio_to_irq(108), IRQ_TYPE_EDGE_RISING);
106 + retu_resource[0].start = gpio_to_irq(108);
107 + platform_device_register(&retu_device);
109 + ret = gpio_request(111, "TAHVO irq");
111 + pr_err("tahvo: Unable to reserve IRQ GPIO\n");
116 + /* Set the pin as input */
117 + ret = gpio_direction_input(111);
119 + pr_err("tahvo: Unable to change direction\n");
125 + tahvo_resource[0].start = gpio_to_irq(111);
126 + platform_device_register(&tahvo_device);
127 + platform_device_register(&tahvo_usb_device);
131 +static inline void __init n8x0_cbus_init(void)
136 #if defined(CONFIG_MENELAUS) && \
137 (defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE))
139 @@ -679,6 +790,8 @@ static inline void board_serial_init(voi
140 static void __init n8x0_init_machine(void)
142 omap2420_mux_init(board_mux, OMAP_PACKAGE_ZAC);
145 /* FIXME: add n810 spi devices */
146 spi_register_board_info(n800_spi_board_info,
147 ARRAY_SIZE(n800_spi_board_info));
148 Index: linux-3.1/arch/arm/plat-omap/include/plat/irqs.h
149 ===================================================================
150 --- linux-3.1.orig/arch/arm/plat-omap/include/plat/irqs.h 2011-10-30 00:48:29.517056855 +0200
151 +++ linux-3.1/arch/arm/plat-omap/include/plat/irqs.h 2011-10-30 00:48:47.357044479 +0200
153 #define OMAP_GPMC_NR_IRQS 8
154 #define OMAP_GPMC_IRQ_END (OMAP_GPMC_IRQ_BASE + OMAP_GPMC_NR_IRQS)
157 +#define CBUS_RETU_IRQ_BASE OMAP_GPMC_IRQ_END
158 +#ifdef CONFIG_CBUS_RETU
159 +#define CBUS_RETU_NR_IRQS 16
161 +#define CBUS_RETU_NR_IRQS 0
163 +#define CBUS_RETU_IRQ_END (CBUS_RETU_IRQ_BASE + CBUS_RETU_NR_IRQS)
165 -#define NR_IRQS OMAP_GPMC_IRQ_END
166 +#define NR_IRQS CBUS_RETU_IRQ_END
168 #define OMAP_IRQ_BIT(irq) (1 << ((irq) % 32))