linux/arch/c6x/include/asm/irq.h
<<
>>
Prefs
   1/*
   2 *  Port on Texas Instruments TMS320C6x architecture
   3 *
   4 *  Copyright (C) 2004, 2006, 2009, 2010, 2011 Texas Instruments Incorporated
   5 *  Author: Aurelien Jacquiot (aurelien.jacquiot@jaluna.com)
   6 *
   7 *  Large parts taken directly from powerpc.
   8 *
   9 *  This program is free software; you can redistribute it and/or modify
  10 *  it under the terms of the GNU General Public License version 2 as
  11 *  published by the Free Software Foundation.
  12 */
  13#ifndef _ASM_C6X_IRQ_H
  14#define _ASM_C6X_IRQ_H
  15
  16#include <linux/irqdomain.h>
  17#include <linux/threads.h>
  18#include <linux/list.h>
  19#include <linux/radix-tree.h>
  20#include <asm/percpu.h>
  21
  22#define irq_canonicalize(irq)  (irq)
  23
  24/*
  25 * The C64X+ core has 16 IRQ vectors. One each is used by Reset and NMI. Two
  26 * are reserved. The remaining 12 vectors are used to route SoC interrupts.
  27 * These interrupt vectors are prioritized with IRQ 4 having the highest
  28 * priority and IRQ 15 having the lowest.
  29 *
  30 * The C64x+ megamodule provides a PIC which combines SoC IRQ sources into a
  31 * single core IRQ vector. There are four combined sources, each of which
  32 * feed into one of the 12 general interrupt vectors. The remaining 8 vectors
  33 * can each route a single SoC interrupt directly.
  34 */
  35#define NR_PRIORITY_IRQS 16
  36
  37/* Total number of virq in the platform */
  38#define NR_IRQS         256
  39
  40/* This number is used when no interrupt has been assigned */
  41#define NO_IRQ          0
  42
  43extern void __init init_pic_c64xplus(void);
  44
  45extern void init_IRQ(void);
  46
  47struct pt_regs;
  48
  49extern asmlinkage void c6x_do_IRQ(unsigned int prio, struct pt_regs *regs);
  50
  51extern unsigned long irq_err_count;
  52
  53#endif /* _ASM_C6X_IRQ_H */
  54