linux/arch/sh/boards/mach-landisk/irq.c
<<
>>
Prefs
   1/*
   2 * arch/sh/boards/mach-landisk/irq.c
   3 *
   4 * I-O DATA Device, Inc. LANDISK Support
   5 *
   6 * Copyright (C) 2005-2007 kogiidena
   7 * Copyright (C) 2011 Nobuhiro Iwamatsu
   8 *
   9 * Copyright (C) 2001  Ian da Silva, Jeremy Siegel
  10 * Based largely on io_se.c.
  11 *
  12 * This file is subject to the terms and conditions of the GNU General Public
  13 * License.  See the file "COPYING" in the main directory of this archive
  14 * for more details.
  15 */
  16
  17#include <linux/init.h>
  18#include <linux/irq.h>
  19#include <linux/interrupt.h>
  20#include <linux/io.h>
  21#include <mach-landisk/mach/iodata_landisk.h>
  22
  23enum {
  24        UNUSED = 0,
  25
  26        PCI_INTA, /* PCI int A */
  27        PCI_INTB, /* PCI int B */
  28        PCI_INTC, /* PCI int C */
  29        PCI_INTD, /* PCI int D */
  30        ATA,      /* ATA */
  31        FATA,     /* CF */
  32        POWER,    /* Power swtich */
  33        BUTTON,   /* Button swtich */
  34};
  35
  36/* Vectors for LANDISK */
  37static struct intc_vect vectors_landisk[] __initdata = {
  38        INTC_IRQ(PCI_INTA, IRQ_PCIINTA),
  39        INTC_IRQ(PCI_INTB, IRQ_PCIINTB),
  40        INTC_IRQ(PCI_INTC, IRQ_PCIINTC),
  41        INTC_IRQ(PCI_INTD, IRQ_PCIINTD),
  42        INTC_IRQ(ATA, IRQ_ATA),
  43        INTC_IRQ(FATA, IRQ_FATA),
  44        INTC_IRQ(POWER, IRQ_POWER),
  45        INTC_IRQ(BUTTON, IRQ_BUTTON),
  46};
  47
  48/* IRLMSK mask register layout for LANDISK */
  49static struct intc_mask_reg mask_registers_landisk[] __initdata = {
  50        { PA_IMASK, 0, 8, /* IRLMSK */
  51          {  BUTTON, POWER, FATA, ATA,
  52             PCI_INTD, PCI_INTC, PCI_INTB, PCI_INTA,
  53          }
  54        },
  55};
  56
  57static DECLARE_INTC_DESC(intc_desc_landisk, "landisk", vectors_landisk, NULL,
  58                        mask_registers_landisk, NULL, NULL);
  59/*
  60 * Initialize IRQ setting
  61 */
  62void __init init_landisk_IRQ(void)
  63{
  64        register_intc_controller(&intc_desc_landisk);
  65        __raw_writeb(0x00, PA_PWRINT_CLR);
  66}
  67