Loading arch/mn10300/include/asm/irq.h +8 −4 Original line number Diff line number Diff line Loading @@ -21,11 +21,15 @@ /* this number is used when no interrupt has been assigned */ #define NO_IRQ INT_MAX /* hardware irq numbers */ #ifdef CONFIG_SMP #define NR_IRQS GxICR_NUM_EXT_IRQS /* * hardware irq numbers * - the ASB2364 has an FPGA with an IRQ multiplexer on it */ #ifdef CONFIG_MN10300_UNIT_ASB2364 #include <unit/irq.h> #else #define NR_IRQS GxICR_NUM_IRQS #define NR_CPU_IRQS GxICR_NUM_IRQS #define NR_IRQS NR_CPU_IRQS #endif /* external hardware irq numbers */ Loading arch/mn10300/kernel/irq.c +10 −3 Original line number Diff line number Diff line Loading @@ -381,9 +381,16 @@ int show_interrupts(struct seq_file *p, void *v) seq_printf(p, "%3d: ", i); for_each_present_cpu(cpu) seq_printf(p, "%10u ", kstat_irqs_cpu(i, cpu)); seq_printf(p, " %14s.%u", irq_desc[i].chip->name, if (i < NR_CPU_IRQS) seq_printf(p, " %14s.%u", irq_desc[i].chip->name, (GxICR(i) & GxICR_LEVEL) >> GxICR_LEVEL_SHIFT); else seq_printf(p, " %14s", irq_desc[i].chip->name); seq_printf(p, " %s", action->name); for (action = action->next; Loading arch/mn10300/unit-asb2364/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -7,4 +7,4 @@ # # Note 2! The CFLAGS definitions are now in the main makefile... obj-y := unit-init.o leds.o obj-y := unit-init.o leds.o irq-fpga.o arch/mn10300/unit-asb2364/include/unit/fpga-regs.h +13 −11 Original line number Diff line number Diff line Loading @@ -14,17 +14,19 @@ #define ASB2364_FPGA_REG_RESET_USB __SYSREG(0xa900130c, u16) #define ASB2364_FPGA_REG_RESET_AV __SYSREG(0xa9001310, u16) #define ASB2364_FPGA_REG_IRQ_LAN __SYSREG(0xa9001510, u16) #define ASB2364_FPGA_REG_IRQ_UART __SYSREG(0xa9001514, u16) #define ASB2364_FPGA_REG_IRQ_I2C __SYSREG(0xa9001518, u16) #define ASB2364_FPGA_REG_IRQ_USB __SYSREG(0xa900151c, u16) #define ASB2364_FPGA_REG_IRQ_FPGA __SYSREG(0xa9001524, u16) #define ASB2364_FPGA_REG_MASK_LAN __SYSREG(0xa9001590, u16) #define ASB2364_FPGA_REG_MASK_UART __SYSREG(0xa9001594, u16) #define ASB2364_FPGA_REG_MASK_I2C __SYSREG(0xa9001598, u16) #define ASB2364_FPGA_REG_MASK_USB __SYSREG(0xa900159c, u16) #define ASB2364_FPGA_REG_MASK_FPGA __SYSREG(0xa90015a4, u16) #define ASB2364_FPGA_REG_IRQ(X) __SYSREG(0xa9001590+((X)*4), u16) #define ASB2364_FPGA_REG_IRQ_LAN ASB2364_FPGA_REG_IRQ(0) #define ASB2364_FPGA_REG_IRQ_UART ASB2364_FPGA_REG_IRQ(1) #define ASB2364_FPGA_REG_IRQ_I2C ASB2364_FPGA_REG_IRQ(2) #define ASB2364_FPGA_REG_IRQ_USB ASB2364_FPGA_REG_IRQ(3) #define ASB2364_FPGA_REG_IRQ_FPGA ASB2364_FPGA_REG_IRQ(5) #define ASB2364_FPGA_REG_MASK(X) __SYSREG(0xa9001590+((X)*4), u16) #define ASB2364_FPGA_REG_MASK_LAN ASB2364_FPGA_REG_MASK(0) #define ASB2364_FPGA_REG_MASK_UART ASB2364_FPGA_REG_MASK(1) #define ASB2364_FPGA_REG_MASK_I2C ASB2364_FPGA_REG_MASK(2) #define ASB2364_FPGA_REG_MASK_USB ASB2364_FPGA_REG_MASK(3) #define ASB2364_FPGA_REG_MASK_FPGA ASB2364_FPGA_REG_MASK(5) #define ASB2364_FPGA_REG_CPLD5_SET1 __SYSREG(0xa9002500, u16) #define ASB2364_FPGA_REG_CPLD5_SET2 __SYSREG(0xa9002504, u16) Loading arch/mn10300/unit-asb2364/include/unit/irq.h 0 → 100644 +35 −0 Original line number Diff line number Diff line /* ASB2364 FPGA irq numbers * * Copyright (C) 2010 Red Hat, Inc. All Rights Reserved. * Written by David Howells (dhowells@redhat.com) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public Licence * as published by the Free Software Foundation; either version * 2 of the Licence, or (at your option) any later version. */ #ifndef _UNIT_IRQ_H #define _UNIT_IRQ_H #ifndef __ASSEMBLY__ #ifdef CONFIG_SMP #define NR_CPU_IRQS GxICR_NUM_EXT_IRQS #else #define NR_CPU_IRQS GxICR_NUM_IRQS #endif enum { FPGA_LAN_IRQ = NR_CPU_IRQS, FPGA_UART_IRQ, FPGA_I2C_IRQ, FPGA_USB_IRQ, FPGA_RESERVED_IRQ, FPGA_FPGA_IRQ, NR_IRQS }; extern void __init irq_fpga_init(void); #endif /* !__ASSEMBLY__ */ #endif /* _UNIT_IRQ_H */ Loading
arch/mn10300/include/asm/irq.h +8 −4 Original line number Diff line number Diff line Loading @@ -21,11 +21,15 @@ /* this number is used when no interrupt has been assigned */ #define NO_IRQ INT_MAX /* hardware irq numbers */ #ifdef CONFIG_SMP #define NR_IRQS GxICR_NUM_EXT_IRQS /* * hardware irq numbers * - the ASB2364 has an FPGA with an IRQ multiplexer on it */ #ifdef CONFIG_MN10300_UNIT_ASB2364 #include <unit/irq.h> #else #define NR_IRQS GxICR_NUM_IRQS #define NR_CPU_IRQS GxICR_NUM_IRQS #define NR_IRQS NR_CPU_IRQS #endif /* external hardware irq numbers */ Loading
arch/mn10300/kernel/irq.c +10 −3 Original line number Diff line number Diff line Loading @@ -381,9 +381,16 @@ int show_interrupts(struct seq_file *p, void *v) seq_printf(p, "%3d: ", i); for_each_present_cpu(cpu) seq_printf(p, "%10u ", kstat_irqs_cpu(i, cpu)); seq_printf(p, " %14s.%u", irq_desc[i].chip->name, if (i < NR_CPU_IRQS) seq_printf(p, " %14s.%u", irq_desc[i].chip->name, (GxICR(i) & GxICR_LEVEL) >> GxICR_LEVEL_SHIFT); else seq_printf(p, " %14s", irq_desc[i].chip->name); seq_printf(p, " %s", action->name); for (action = action->next; Loading
arch/mn10300/unit-asb2364/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -7,4 +7,4 @@ # # Note 2! The CFLAGS definitions are now in the main makefile... obj-y := unit-init.o leds.o obj-y := unit-init.o leds.o irq-fpga.o
arch/mn10300/unit-asb2364/include/unit/fpga-regs.h +13 −11 Original line number Diff line number Diff line Loading @@ -14,17 +14,19 @@ #define ASB2364_FPGA_REG_RESET_USB __SYSREG(0xa900130c, u16) #define ASB2364_FPGA_REG_RESET_AV __SYSREG(0xa9001310, u16) #define ASB2364_FPGA_REG_IRQ_LAN __SYSREG(0xa9001510, u16) #define ASB2364_FPGA_REG_IRQ_UART __SYSREG(0xa9001514, u16) #define ASB2364_FPGA_REG_IRQ_I2C __SYSREG(0xa9001518, u16) #define ASB2364_FPGA_REG_IRQ_USB __SYSREG(0xa900151c, u16) #define ASB2364_FPGA_REG_IRQ_FPGA __SYSREG(0xa9001524, u16) #define ASB2364_FPGA_REG_MASK_LAN __SYSREG(0xa9001590, u16) #define ASB2364_FPGA_REG_MASK_UART __SYSREG(0xa9001594, u16) #define ASB2364_FPGA_REG_MASK_I2C __SYSREG(0xa9001598, u16) #define ASB2364_FPGA_REG_MASK_USB __SYSREG(0xa900159c, u16) #define ASB2364_FPGA_REG_MASK_FPGA __SYSREG(0xa90015a4, u16) #define ASB2364_FPGA_REG_IRQ(X) __SYSREG(0xa9001590+((X)*4), u16) #define ASB2364_FPGA_REG_IRQ_LAN ASB2364_FPGA_REG_IRQ(0) #define ASB2364_FPGA_REG_IRQ_UART ASB2364_FPGA_REG_IRQ(1) #define ASB2364_FPGA_REG_IRQ_I2C ASB2364_FPGA_REG_IRQ(2) #define ASB2364_FPGA_REG_IRQ_USB ASB2364_FPGA_REG_IRQ(3) #define ASB2364_FPGA_REG_IRQ_FPGA ASB2364_FPGA_REG_IRQ(5) #define ASB2364_FPGA_REG_MASK(X) __SYSREG(0xa9001590+((X)*4), u16) #define ASB2364_FPGA_REG_MASK_LAN ASB2364_FPGA_REG_MASK(0) #define ASB2364_FPGA_REG_MASK_UART ASB2364_FPGA_REG_MASK(1) #define ASB2364_FPGA_REG_MASK_I2C ASB2364_FPGA_REG_MASK(2) #define ASB2364_FPGA_REG_MASK_USB ASB2364_FPGA_REG_MASK(3) #define ASB2364_FPGA_REG_MASK_FPGA ASB2364_FPGA_REG_MASK(5) #define ASB2364_FPGA_REG_CPLD5_SET1 __SYSREG(0xa9002500, u16) #define ASB2364_FPGA_REG_CPLD5_SET2 __SYSREG(0xa9002504, u16) Loading
arch/mn10300/unit-asb2364/include/unit/irq.h 0 → 100644 +35 −0 Original line number Diff line number Diff line /* ASB2364 FPGA irq numbers * * Copyright (C) 2010 Red Hat, Inc. All Rights Reserved. * Written by David Howells (dhowells@redhat.com) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public Licence * as published by the Free Software Foundation; either version * 2 of the Licence, or (at your option) any later version. */ #ifndef _UNIT_IRQ_H #define _UNIT_IRQ_H #ifndef __ASSEMBLY__ #ifdef CONFIG_SMP #define NR_CPU_IRQS GxICR_NUM_EXT_IRQS #else #define NR_CPU_IRQS GxICR_NUM_IRQS #endif enum { FPGA_LAN_IRQ = NR_CPU_IRQS, FPGA_UART_IRQ, FPGA_I2C_IRQ, FPGA_USB_IRQ, FPGA_RESERVED_IRQ, FPGA_FPGA_IRQ, NR_IRQS }; extern void __init irq_fpga_init(void); #endif /* !__ASSEMBLY__ */ #endif /* _UNIT_IRQ_H */