Merge branch 'consolidate-clksrc-i8253' of master.kernel.org:~rmk/linux-2.6-arm into timers/clocksource
Conflicts: arch/ia64/kernel/cyclone.c arch/mips/kernel/i8253.c arch/x86/kernel/i8253.c Reason: Resolve conflicts so further cleanups do not conflict further Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
@@ -75,7 +75,7 @@ void set_au1x00_uart_baud_base(unsigned long new_baud_base)
|
||||
* counter, if it exists. If we don't have an accurate processor
|
||||
* speed, all of the peripherals that derive their clocks based on
|
||||
* this advertised speed will introduce error and sometimes not work
|
||||
* properly. This function is futher convoluted to still allow configurations
|
||||
* properly. This function is further convoluted to still allow configurations
|
||||
* to do that in case they have really, really old silicon with a
|
||||
* write-only PLL register. -- Dan
|
||||
*/
|
||||
|
@@ -39,7 +39,7 @@
|
||||
#include <asm/mach-pb1x00/pb1000.h>
|
||||
#endif
|
||||
|
||||
static int au1x_ic_settype(unsigned int irq, unsigned int flow_type);
|
||||
static int au1x_ic_settype(struct irq_data *d, unsigned int flow_type);
|
||||
|
||||
/* NOTE on interrupt priorities: The original writers of this code said:
|
||||
*
|
||||
@@ -218,17 +218,17 @@ struct au1xxx_irqmap au1200_irqmap[] __initdata = {
|
||||
};
|
||||
|
||||
|
||||
static void au1x_ic0_unmask(unsigned int irq_nr)
|
||||
static void au1x_ic0_unmask(struct irq_data *d)
|
||||
{
|
||||
unsigned int bit = irq_nr - AU1000_INTC0_INT_BASE;
|
||||
unsigned int bit = d->irq - AU1000_INTC0_INT_BASE;
|
||||
au_writel(1 << bit, IC0_MASKSET);
|
||||
au_writel(1 << bit, IC0_WAKESET);
|
||||
au_sync();
|
||||
}
|
||||
|
||||
static void au1x_ic1_unmask(unsigned int irq_nr)
|
||||
static void au1x_ic1_unmask(struct irq_data *d)
|
||||
{
|
||||
unsigned int bit = irq_nr - AU1000_INTC1_INT_BASE;
|
||||
unsigned int bit = d->irq - AU1000_INTC1_INT_BASE;
|
||||
au_writel(1 << bit, IC1_MASKSET);
|
||||
au_writel(1 << bit, IC1_WAKESET);
|
||||
|
||||
@@ -236,31 +236,31 @@ static void au1x_ic1_unmask(unsigned int irq_nr)
|
||||
* nowhere in the current kernel sources is it disabled. --mlau
|
||||
*/
|
||||
#if defined(CONFIG_MIPS_PB1000)
|
||||
if (irq_nr == AU1000_GPIO15_INT)
|
||||
if (d->irq == AU1000_GPIO15_INT)
|
||||
au_writel(0x4000, PB1000_MDR); /* enable int */
|
||||
#endif
|
||||
au_sync();
|
||||
}
|
||||
|
||||
static void au1x_ic0_mask(unsigned int irq_nr)
|
||||
static void au1x_ic0_mask(struct irq_data *d)
|
||||
{
|
||||
unsigned int bit = irq_nr - AU1000_INTC0_INT_BASE;
|
||||
unsigned int bit = d->irq - AU1000_INTC0_INT_BASE;
|
||||
au_writel(1 << bit, IC0_MASKCLR);
|
||||
au_writel(1 << bit, IC0_WAKECLR);
|
||||
au_sync();
|
||||
}
|
||||
|
||||
static void au1x_ic1_mask(unsigned int irq_nr)
|
||||
static void au1x_ic1_mask(struct irq_data *d)
|
||||
{
|
||||
unsigned int bit = irq_nr - AU1000_INTC1_INT_BASE;
|
||||
unsigned int bit = d->irq - AU1000_INTC1_INT_BASE;
|
||||
au_writel(1 << bit, IC1_MASKCLR);
|
||||
au_writel(1 << bit, IC1_WAKECLR);
|
||||
au_sync();
|
||||
}
|
||||
|
||||
static void au1x_ic0_ack(unsigned int irq_nr)
|
||||
static void au1x_ic0_ack(struct irq_data *d)
|
||||
{
|
||||
unsigned int bit = irq_nr - AU1000_INTC0_INT_BASE;
|
||||
unsigned int bit = d->irq - AU1000_INTC0_INT_BASE;
|
||||
|
||||
/*
|
||||
* This may assume that we don't get interrupts from
|
||||
@@ -271,9 +271,9 @@ static void au1x_ic0_ack(unsigned int irq_nr)
|
||||
au_sync();
|
||||
}
|
||||
|
||||
static void au1x_ic1_ack(unsigned int irq_nr)
|
||||
static void au1x_ic1_ack(struct irq_data *d)
|
||||
{
|
||||
unsigned int bit = irq_nr - AU1000_INTC1_INT_BASE;
|
||||
unsigned int bit = d->irq - AU1000_INTC1_INT_BASE;
|
||||
|
||||
/*
|
||||
* This may assume that we don't get interrupts from
|
||||
@@ -284,9 +284,9 @@ static void au1x_ic1_ack(unsigned int irq_nr)
|
||||
au_sync();
|
||||
}
|
||||
|
||||
static void au1x_ic0_maskack(unsigned int irq_nr)
|
||||
static void au1x_ic0_maskack(struct irq_data *d)
|
||||
{
|
||||
unsigned int bit = irq_nr - AU1000_INTC0_INT_BASE;
|
||||
unsigned int bit = d->irq - AU1000_INTC0_INT_BASE;
|
||||
|
||||
au_writel(1 << bit, IC0_WAKECLR);
|
||||
au_writel(1 << bit, IC0_MASKCLR);
|
||||
@@ -295,9 +295,9 @@ static void au1x_ic0_maskack(unsigned int irq_nr)
|
||||
au_sync();
|
||||
}
|
||||
|
||||
static void au1x_ic1_maskack(unsigned int irq_nr)
|
||||
static void au1x_ic1_maskack(struct irq_data *d)
|
||||
{
|
||||
unsigned int bit = irq_nr - AU1000_INTC1_INT_BASE;
|
||||
unsigned int bit = d->irq - AU1000_INTC1_INT_BASE;
|
||||
|
||||
au_writel(1 << bit, IC1_WAKECLR);
|
||||
au_writel(1 << bit, IC1_MASKCLR);
|
||||
@@ -306,9 +306,9 @@ static void au1x_ic1_maskack(unsigned int irq_nr)
|
||||
au_sync();
|
||||
}
|
||||
|
||||
static int au1x_ic1_setwake(unsigned int irq, unsigned int on)
|
||||
static int au1x_ic1_setwake(struct irq_data *d, unsigned int on)
|
||||
{
|
||||
int bit = irq - AU1000_INTC1_INT_BASE;
|
||||
int bit = d->irq - AU1000_INTC1_INT_BASE;
|
||||
unsigned long wakemsk, flags;
|
||||
|
||||
/* only GPIO 0-7 can act as wakeup source. Fortunately these
|
||||
@@ -336,28 +336,30 @@ static int au1x_ic1_setwake(unsigned int irq, unsigned int on)
|
||||
*/
|
||||
static struct irq_chip au1x_ic0_chip = {
|
||||
.name = "Alchemy-IC0",
|
||||
.ack = au1x_ic0_ack,
|
||||
.mask = au1x_ic0_mask,
|
||||
.mask_ack = au1x_ic0_maskack,
|
||||
.unmask = au1x_ic0_unmask,
|
||||
.set_type = au1x_ic_settype,
|
||||
.irq_ack = au1x_ic0_ack,
|
||||
.irq_mask = au1x_ic0_mask,
|
||||
.irq_mask_ack = au1x_ic0_maskack,
|
||||
.irq_unmask = au1x_ic0_unmask,
|
||||
.irq_set_type = au1x_ic_settype,
|
||||
};
|
||||
|
||||
static struct irq_chip au1x_ic1_chip = {
|
||||
.name = "Alchemy-IC1",
|
||||
.ack = au1x_ic1_ack,
|
||||
.mask = au1x_ic1_mask,
|
||||
.mask_ack = au1x_ic1_maskack,
|
||||
.unmask = au1x_ic1_unmask,
|
||||
.set_type = au1x_ic_settype,
|
||||
.set_wake = au1x_ic1_setwake,
|
||||
.irq_ack = au1x_ic1_ack,
|
||||
.irq_mask = au1x_ic1_mask,
|
||||
.irq_mask_ack = au1x_ic1_maskack,
|
||||
.irq_unmask = au1x_ic1_unmask,
|
||||
.irq_set_type = au1x_ic_settype,
|
||||
.irq_set_wake = au1x_ic1_setwake,
|
||||
};
|
||||
|
||||
static int au1x_ic_settype(unsigned int irq, unsigned int flow_type)
|
||||
static int au1x_ic_settype(struct irq_data *d, unsigned int flow_type)
|
||||
{
|
||||
struct irq_chip *chip;
|
||||
unsigned long icr[6];
|
||||
unsigned int bit, ic;
|
||||
unsigned int bit, ic, irq = d->irq;
|
||||
irq_flow_handler_t handler = NULL;
|
||||
unsigned char *name = NULL;
|
||||
int ret;
|
||||
|
||||
if (irq >= AU1000_INTC1_INT_BASE) {
|
||||
@@ -387,47 +389,47 @@ static int au1x_ic_settype(unsigned int irq, unsigned int flow_type)
|
||||
au_writel(1 << bit, icr[5]);
|
||||
au_writel(1 << bit, icr[4]);
|
||||
au_writel(1 << bit, icr[0]);
|
||||
set_irq_chip_and_handler_name(irq, chip,
|
||||
handle_edge_irq, "riseedge");
|
||||
handler = handle_edge_irq;
|
||||
name = "riseedge";
|
||||
break;
|
||||
case IRQ_TYPE_EDGE_FALLING: /* 0:1:0 */
|
||||
au_writel(1 << bit, icr[5]);
|
||||
au_writel(1 << bit, icr[1]);
|
||||
au_writel(1 << bit, icr[3]);
|
||||
set_irq_chip_and_handler_name(irq, chip,
|
||||
handle_edge_irq, "falledge");
|
||||
handler = handle_edge_irq;
|
||||
name = "falledge";
|
||||
break;
|
||||
case IRQ_TYPE_EDGE_BOTH: /* 0:1:1 */
|
||||
au_writel(1 << bit, icr[5]);
|
||||
au_writel(1 << bit, icr[1]);
|
||||
au_writel(1 << bit, icr[0]);
|
||||
set_irq_chip_and_handler_name(irq, chip,
|
||||
handle_edge_irq, "bothedge");
|
||||
handler = handle_edge_irq;
|
||||
name = "bothedge";
|
||||
break;
|
||||
case IRQ_TYPE_LEVEL_HIGH: /* 1:0:1 */
|
||||
au_writel(1 << bit, icr[2]);
|
||||
au_writel(1 << bit, icr[4]);
|
||||
au_writel(1 << bit, icr[0]);
|
||||
set_irq_chip_and_handler_name(irq, chip,
|
||||
handle_level_irq, "hilevel");
|
||||
handler = handle_level_irq;
|
||||
name = "hilevel";
|
||||
break;
|
||||
case IRQ_TYPE_LEVEL_LOW: /* 1:1:0 */
|
||||
au_writel(1 << bit, icr[2]);
|
||||
au_writel(1 << bit, icr[1]);
|
||||
au_writel(1 << bit, icr[3]);
|
||||
set_irq_chip_and_handler_name(irq, chip,
|
||||
handle_level_irq, "lowlevel");
|
||||
handler = handle_level_irq;
|
||||
name = "lowlevel";
|
||||
break;
|
||||
case IRQ_TYPE_NONE: /* 0:0:0 */
|
||||
au_writel(1 << bit, icr[5]);
|
||||
au_writel(1 << bit, icr[4]);
|
||||
au_writel(1 << bit, icr[3]);
|
||||
/* set at least chip so we can call set_irq_type() on it */
|
||||
set_irq_chip(irq, chip);
|
||||
break;
|
||||
default:
|
||||
ret = -EINVAL;
|
||||
}
|
||||
__irq_set_chip_handler_name_locked(d->irq, chip, handler, name);
|
||||
|
||||
au_sync();
|
||||
|
||||
return ret;
|
||||
@@ -504,11 +506,11 @@ static void __init au1000_init_irq(struct au1xxx_irqmap *map)
|
||||
*/
|
||||
for (i = AU1000_INTC0_INT_BASE;
|
||||
(i < AU1000_INTC0_INT_BASE + 32); i++)
|
||||
au1x_ic_settype(i, IRQ_TYPE_NONE);
|
||||
au1x_ic_settype(irq_get_irq_data(i), IRQ_TYPE_NONE);
|
||||
|
||||
for (i = AU1000_INTC1_INT_BASE;
|
||||
(i < AU1000_INTC1_INT_BASE + 32); i++)
|
||||
au1x_ic_settype(i, IRQ_TYPE_NONE);
|
||||
au1x_ic_settype(irq_get_irq_data(i), IRQ_TYPE_NONE);
|
||||
|
||||
/*
|
||||
* Initialize IC0, which is fixed per processor.
|
||||
@@ -526,7 +528,7 @@ static void __init au1000_init_irq(struct au1xxx_irqmap *map)
|
||||
au_writel(1 << bit, IC0_ASSIGNSET);
|
||||
}
|
||||
|
||||
au1x_ic_settype(irq_nr, map->im_type);
|
||||
au1x_ic_settype(irq_get_irq_data(irq_nr), map->im_type);
|
||||
++map;
|
||||
}
|
||||
|
||||
|
@@ -97,26 +97,26 @@ static void bcsr_csc_handler(unsigned int irq, struct irq_desc *d)
|
||||
* CPLD generates tons of spurious interrupts (at least on my DB1200).
|
||||
* -- mlau
|
||||
*/
|
||||
static void bcsr_irq_mask(unsigned int irq_nr)
|
||||
static void bcsr_irq_mask(struct irq_data *d)
|
||||
{
|
||||
unsigned short v = 1 << (irq_nr - bcsr_csc_base);
|
||||
unsigned short v = 1 << (d->irq - bcsr_csc_base);
|
||||
__raw_writew(v, bcsr_virt + BCSR_REG_INTCLR);
|
||||
__raw_writew(v, bcsr_virt + BCSR_REG_MASKCLR);
|
||||
wmb();
|
||||
}
|
||||
|
||||
static void bcsr_irq_maskack(unsigned int irq_nr)
|
||||
static void bcsr_irq_maskack(struct irq_data *d)
|
||||
{
|
||||
unsigned short v = 1 << (irq_nr - bcsr_csc_base);
|
||||
unsigned short v = 1 << (d->irq - bcsr_csc_base);
|
||||
__raw_writew(v, bcsr_virt + BCSR_REG_INTCLR);
|
||||
__raw_writew(v, bcsr_virt + BCSR_REG_MASKCLR);
|
||||
__raw_writew(v, bcsr_virt + BCSR_REG_INTSTAT); /* ack */
|
||||
wmb();
|
||||
}
|
||||
|
||||
static void bcsr_irq_unmask(unsigned int irq_nr)
|
||||
static void bcsr_irq_unmask(struct irq_data *d)
|
||||
{
|
||||
unsigned short v = 1 << (irq_nr - bcsr_csc_base);
|
||||
unsigned short v = 1 << (d->irq - bcsr_csc_base);
|
||||
__raw_writew(v, bcsr_virt + BCSR_REG_INTSET);
|
||||
__raw_writew(v, bcsr_virt + BCSR_REG_MASKSET);
|
||||
wmb();
|
||||
@@ -124,9 +124,9 @@ static void bcsr_irq_unmask(unsigned int irq_nr)
|
||||
|
||||
static struct irq_chip bcsr_irq_type = {
|
||||
.name = "CPLD",
|
||||
.mask = bcsr_irq_mask,
|
||||
.mask_ack = bcsr_irq_maskack,
|
||||
.unmask = bcsr_irq_unmask,
|
||||
.irq_mask = bcsr_irq_mask,
|
||||
.irq_mask_ack = bcsr_irq_maskack,
|
||||
.irq_unmask = bcsr_irq_unmask,
|
||||
};
|
||||
|
||||
void __init bcsr_init_irq(int csc_start, int csc_end, int hook_irq)
|
||||
@@ -142,8 +142,8 @@ void __init bcsr_init_irq(int csc_start, int csc_end, int hook_irq)
|
||||
bcsr_csc_base = csc_start;
|
||||
|
||||
for (irq = csc_start; irq <= csc_end; irq++)
|
||||
set_irq_chip_and_handler_name(irq, &bcsr_irq_type,
|
||||
handle_level_irq, "level");
|
||||
irq_set_chip_and_handler_name(irq, &bcsr_irq_type,
|
||||
handle_level_irq, "level");
|
||||
|
||||
set_irq_chained_handler(hook_irq, bcsr_csc_handler);
|
||||
irq_set_chained_handler(hook_irq, bcsr_csc_handler);
|
||||
}
|
||||
|
@@ -63,20 +63,19 @@ void __init board_setup(void)
|
||||
static int __init db1200_arch_init(void)
|
||||
{
|
||||
/* GPIO7 is low-level triggered CPLD cascade */
|
||||
set_irq_type(AU1200_GPIO7_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1200_GPIO7_INT, IRQF_TRIGGER_LOW);
|
||||
bcsr_init_irq(DB1200_INT_BEGIN, DB1200_INT_END, AU1200_GPIO7_INT);
|
||||
|
||||
/* insert/eject pairs: one of both is always screaming. To avoid
|
||||
* issues they must not be automatically enabled when initially
|
||||
* requested.
|
||||
*/
|
||||
irq_to_desc(DB1200_SD0_INSERT_INT)->status |= IRQ_NOAUTOEN;
|
||||
irq_to_desc(DB1200_SD0_EJECT_INT)->status |= IRQ_NOAUTOEN;
|
||||
irq_to_desc(DB1200_PC0_INSERT_INT)->status |= IRQ_NOAUTOEN;
|
||||
irq_to_desc(DB1200_PC0_EJECT_INT)->status |= IRQ_NOAUTOEN;
|
||||
irq_to_desc(DB1200_PC1_INSERT_INT)->status |= IRQ_NOAUTOEN;
|
||||
irq_to_desc(DB1200_PC1_EJECT_INT)->status |= IRQ_NOAUTOEN;
|
||||
|
||||
irq_set_status_flags(DB1200_SD0_INSERT_INT, IRQ_NOAUTOEN);
|
||||
irq_set_status_flags(DB1200_SD0_EJECT_INT, IRQ_NOAUTOEN);
|
||||
irq_set_status_flags(DB1200_PC0_INSERT_INT, IRQ_NOAUTOEN);
|
||||
irq_set_status_flags(DB1200_PC0_EJECT_INT, IRQ_NOAUTOEN);
|
||||
irq_set_status_flags(DB1200_PC1_INSERT_INT, IRQ_NOAUTOEN);
|
||||
irq_set_status_flags(DB1200_PC1_EJECT_INT, IRQ_NOAUTOEN);
|
||||
return 0;
|
||||
}
|
||||
arch_initcall(db1200_arch_init);
|
||||
|
@@ -215,35 +215,35 @@ void __init board_setup(void)
|
||||
static int __init db1x00_init_irq(void)
|
||||
{
|
||||
#if defined(CONFIG_MIPS_MIRAGE)
|
||||
set_irq_type(AU1500_GPIO7_INT, IRQF_TRIGGER_RISING); /* TS pendown */
|
||||
irq_set_irq_type(AU1500_GPIO7_INT, IRQF_TRIGGER_RISING); /* TS pendown */
|
||||
#elif defined(CONFIG_MIPS_DB1550)
|
||||
set_irq_type(AU1550_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
|
||||
set_irq_type(AU1550_GPIO1_INT, IRQF_TRIGGER_LOW); /* CD1# */
|
||||
set_irq_type(AU1550_GPIO3_INT, IRQF_TRIGGER_LOW); /* CARD0# */
|
||||
set_irq_type(AU1550_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
|
||||
set_irq_type(AU1550_GPIO21_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
|
||||
set_irq_type(AU1550_GPIO22_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
|
||||
irq_set_irq_type(AU1550_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
|
||||
irq_set_irq_type(AU1550_GPIO1_INT, IRQF_TRIGGER_LOW); /* CD1# */
|
||||
irq_set_irq_type(AU1550_GPIO3_INT, IRQF_TRIGGER_LOW); /* CARD0# */
|
||||
irq_set_irq_type(AU1550_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
|
||||
irq_set_irq_type(AU1550_GPIO21_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
|
||||
irq_set_irq_type(AU1550_GPIO22_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
|
||||
#elif defined(CONFIG_MIPS_DB1500)
|
||||
set_irq_type(AU1500_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
|
||||
set_irq_type(AU1500_GPIO3_INT, IRQF_TRIGGER_LOW); /* CD1# */
|
||||
set_irq_type(AU1500_GPIO2_INT, IRQF_TRIGGER_LOW); /* CARD0# */
|
||||
set_irq_type(AU1500_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
|
||||
set_irq_type(AU1500_GPIO1_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
|
||||
set_irq_type(AU1500_GPIO4_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
|
||||
irq_set_irq_type(AU1500_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
|
||||
irq_set_irq_type(AU1500_GPIO3_INT, IRQF_TRIGGER_LOW); /* CD1# */
|
||||
irq_set_irq_type(AU1500_GPIO2_INT, IRQF_TRIGGER_LOW); /* CARD0# */
|
||||
irq_set_irq_type(AU1500_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
|
||||
irq_set_irq_type(AU1500_GPIO1_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
|
||||
irq_set_irq_type(AU1500_GPIO4_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
|
||||
#elif defined(CONFIG_MIPS_DB1100)
|
||||
set_irq_type(AU1100_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
|
||||
set_irq_type(AU1100_GPIO3_INT, IRQF_TRIGGER_LOW); /* CD1# */
|
||||
set_irq_type(AU1100_GPIO2_INT, IRQF_TRIGGER_LOW); /* CARD0# */
|
||||
set_irq_type(AU1100_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
|
||||
set_irq_type(AU1100_GPIO1_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
|
||||
set_irq_type(AU1100_GPIO4_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
|
||||
irq_set_irq_type(AU1100_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
|
||||
irq_set_irq_type(AU1100_GPIO3_INT, IRQF_TRIGGER_LOW); /* CD1# */
|
||||
irq_set_irq_type(AU1100_GPIO2_INT, IRQF_TRIGGER_LOW); /* CARD0# */
|
||||
irq_set_irq_type(AU1100_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
|
||||
irq_set_irq_type(AU1100_GPIO1_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
|
||||
irq_set_irq_type(AU1100_GPIO4_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
|
||||
#elif defined(CONFIG_MIPS_DB1000)
|
||||
set_irq_type(AU1000_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
|
||||
set_irq_type(AU1000_GPIO3_INT, IRQF_TRIGGER_LOW); /* CD1# */
|
||||
set_irq_type(AU1000_GPIO2_INT, IRQF_TRIGGER_LOW); /* CARD0# */
|
||||
set_irq_type(AU1000_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
|
||||
set_irq_type(AU1000_GPIO1_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
|
||||
set_irq_type(AU1000_GPIO4_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
|
||||
irq_set_irq_type(AU1000_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
|
||||
irq_set_irq_type(AU1000_GPIO3_INT, IRQF_TRIGGER_LOW); /* CD1# */
|
||||
irq_set_irq_type(AU1000_GPIO2_INT, IRQF_TRIGGER_LOW); /* CARD0# */
|
||||
irq_set_irq_type(AU1000_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
|
||||
irq_set_irq_type(AU1000_GPIO1_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
|
||||
irq_set_irq_type(AU1000_GPIO4_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
@@ -197,7 +197,7 @@ void __init board_setup(void)
|
||||
|
||||
static int __init pb1000_init_irq(void)
|
||||
{
|
||||
set_irq_type(AU1000_GPIO15_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1000_GPIO15_INT, IRQF_TRIGGER_LOW);
|
||||
return 0;
|
||||
}
|
||||
arch_initcall(pb1000_init_irq);
|
||||
|
@@ -117,10 +117,10 @@ void __init board_setup(void)
|
||||
|
||||
static int __init pb1100_init_irq(void)
|
||||
{
|
||||
set_irq_type(AU1100_GPIO9_INT, IRQF_TRIGGER_LOW); /* PCCD# */
|
||||
set_irq_type(AU1100_GPIO10_INT, IRQF_TRIGGER_LOW); /* PCSTSCHG# */
|
||||
set_irq_type(AU1100_GPIO11_INT, IRQF_TRIGGER_LOW); /* PCCard# */
|
||||
set_irq_type(AU1100_GPIO13_INT, IRQF_TRIGGER_LOW); /* DC_IRQ# */
|
||||
irq_set_irq_type(AU1100_GPIO9_INT, IRQF_TRIGGER_LOW); /* PCCD# */
|
||||
irq_set_irq_type(AU1100_GPIO10_INT, IRQF_TRIGGER_LOW); /* PCSTSCHG# */
|
||||
irq_set_irq_type(AU1100_GPIO11_INT, IRQF_TRIGGER_LOW); /* PCCard# */
|
||||
irq_set_irq_type(AU1100_GPIO13_INT, IRQF_TRIGGER_LOW); /* DC_IRQ# */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -142,7 +142,7 @@ static int __init pb1200_init_irq(void)
|
||||
panic("Game over. Your score is 0.");
|
||||
}
|
||||
|
||||
set_irq_type(AU1200_GPIO7_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1200_GPIO7_INT, IRQF_TRIGGER_LOW);
|
||||
bcsr_init_irq(PB1200_INT_BEGIN, PB1200_INT_END, AU1200_GPIO7_INT);
|
||||
|
||||
return 0;
|
||||
|
@@ -134,14 +134,14 @@ void __init board_setup(void)
|
||||
|
||||
static int __init pb1500_init_irq(void)
|
||||
{
|
||||
set_irq_type(AU1500_GPIO9_INT, IRQF_TRIGGER_LOW); /* CD0# */
|
||||
set_irq_type(AU1500_GPIO10_INT, IRQF_TRIGGER_LOW); /* CARD0 */
|
||||
set_irq_type(AU1500_GPIO11_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
|
||||
set_irq_type(AU1500_GPIO204_INT, IRQF_TRIGGER_HIGH);
|
||||
set_irq_type(AU1500_GPIO201_INT, IRQF_TRIGGER_LOW);
|
||||
set_irq_type(AU1500_GPIO202_INT, IRQF_TRIGGER_LOW);
|
||||
set_irq_type(AU1500_GPIO203_INT, IRQF_TRIGGER_LOW);
|
||||
set_irq_type(AU1500_GPIO205_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO9_INT, IRQF_TRIGGER_LOW); /* CD0# */
|
||||
irq_set_irq_type(AU1500_GPIO10_INT, IRQF_TRIGGER_LOW); /* CARD0 */
|
||||
irq_set_irq_type(AU1500_GPIO11_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
|
||||
irq_set_irq_type(AU1500_GPIO204_INT, IRQF_TRIGGER_HIGH);
|
||||
irq_set_irq_type(AU1500_GPIO201_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO202_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO203_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO205_INT, IRQF_TRIGGER_LOW);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -73,9 +73,9 @@ void __init board_setup(void)
|
||||
|
||||
static int __init pb1550_init_irq(void)
|
||||
{
|
||||
set_irq_type(AU1550_GPIO0_INT, IRQF_TRIGGER_LOW);
|
||||
set_irq_type(AU1550_GPIO1_INT, IRQF_TRIGGER_LOW);
|
||||
set_irq_type(AU1550_GPIO201_205_INT, IRQF_TRIGGER_HIGH);
|
||||
irq_set_irq_type(AU1550_GPIO0_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1550_GPIO1_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1550_GPIO201_205_INT, IRQF_TRIGGER_HIGH);
|
||||
|
||||
/* enable both PCMCIA card irqs in the shared line */
|
||||
alchemy_gpio2_enable_int(201);
|
||||
|
@@ -54,8 +54,8 @@ int mtx1_pci_idsel(unsigned int devsel, int assert);
|
||||
|
||||
static void mtx1_reset(char *c)
|
||||
{
|
||||
/* Hit BCSR.SYSTEM_CONTROL[SW_RST] */
|
||||
au_writel(0x00000000, 0xAE00001C);
|
||||
/* Jump to the reset vector */
|
||||
__asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
|
||||
}
|
||||
|
||||
static void mtx1_power_off(void)
|
||||
@@ -123,11 +123,11 @@ mtx1_pci_idsel(unsigned int devsel, int assert)
|
||||
|
||||
static int __init mtx1_init_irq(void)
|
||||
{
|
||||
set_irq_type(AU1500_GPIO204_INT, IRQF_TRIGGER_HIGH);
|
||||
set_irq_type(AU1500_GPIO201_INT, IRQF_TRIGGER_LOW);
|
||||
set_irq_type(AU1500_GPIO202_INT, IRQF_TRIGGER_LOW);
|
||||
set_irq_type(AU1500_GPIO203_INT, IRQF_TRIGGER_LOW);
|
||||
set_irq_type(AU1500_GPIO205_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO204_INT, IRQF_TRIGGER_HIGH);
|
||||
irq_set_irq_type(AU1500_GPIO201_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO202_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO203_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO205_INT, IRQF_TRIGGER_LOW);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -28,6 +28,8 @@
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <mtd/mtd-abi.h>
|
||||
|
||||
#include <asm/mach-au1x00/au1xxx_eth.h>
|
||||
|
||||
static struct gpio_keys_button mtx1_gpio_button[] = {
|
||||
{
|
||||
.gpio = 207,
|
||||
@@ -140,10 +142,17 @@ static struct __initdata platform_device * mtx1_devs[] = {
|
||||
&mtx1_mtd,
|
||||
};
|
||||
|
||||
static struct au1000_eth_platform_data mtx1_au1000_eth0_pdata = {
|
||||
.phy_search_highest_addr = 1,
|
||||
.phy1_search_mac0 = 1,
|
||||
};
|
||||
|
||||
static int __init mtx1_register_devices(void)
|
||||
{
|
||||
int rc;
|
||||
|
||||
au1xxx_override_eth_cfg(0, &mtx1_au1000_eth0_pdata);
|
||||
|
||||
rc = gpio_request(mtx1_gpio_button[0].gpio,
|
||||
mtx1_gpio_button[0].desc);
|
||||
if (rc < 0) {
|
||||
|
@@ -36,8 +36,8 @@
|
||||
|
||||
static void xxs1500_reset(char *c)
|
||||
{
|
||||
/* Hit BCSR.SYSTEM_CONTROL[SW_RST] */
|
||||
au_writel(0x00000000, 0xAE00001C);
|
||||
/* Jump to the reset vector */
|
||||
__asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
|
||||
}
|
||||
|
||||
static void xxs1500_power_off(void)
|
||||
@@ -85,19 +85,19 @@ void __init board_setup(void)
|
||||
|
||||
static int __init xxs1500_init_irq(void)
|
||||
{
|
||||
set_irq_type(AU1500_GPIO204_INT, IRQF_TRIGGER_HIGH);
|
||||
set_irq_type(AU1500_GPIO201_INT, IRQF_TRIGGER_LOW);
|
||||
set_irq_type(AU1500_GPIO202_INT, IRQF_TRIGGER_LOW);
|
||||
set_irq_type(AU1500_GPIO203_INT, IRQF_TRIGGER_LOW);
|
||||
set_irq_type(AU1500_GPIO205_INT, IRQF_TRIGGER_LOW);
|
||||
set_irq_type(AU1500_GPIO207_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO204_INT, IRQF_TRIGGER_HIGH);
|
||||
irq_set_irq_type(AU1500_GPIO201_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO202_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO203_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO205_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO207_INT, IRQF_TRIGGER_LOW);
|
||||
|
||||
set_irq_type(AU1500_GPIO0_INT, IRQF_TRIGGER_LOW);
|
||||
set_irq_type(AU1500_GPIO1_INT, IRQF_TRIGGER_LOW);
|
||||
set_irq_type(AU1500_GPIO2_INT, IRQF_TRIGGER_LOW);
|
||||
set_irq_type(AU1500_GPIO3_INT, IRQF_TRIGGER_LOW);
|
||||
set_irq_type(AU1500_GPIO4_INT, IRQF_TRIGGER_LOW); /* CF irq */
|
||||
set_irq_type(AU1500_GPIO5_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO0_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO1_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO2_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO3_INT, IRQF_TRIGGER_LOW);
|
||||
irq_set_irq_type(AU1500_GPIO4_INT, IRQF_TRIGGER_LOW); /* CF irq */
|
||||
irq_set_irq_type(AU1500_GPIO5_INT, IRQF_TRIGGER_LOW);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user