version 1.1, 2008/03/04 16:05:18 |
version 1.4, 2008/03/05 20:17:58 |
|
|
*/ |
*/ |
ip = sagpio_reg_read(sc, SAGPIO_EDR); |
ip = sagpio_reg_read(sc, SAGPIO_EDR); |
if ((ip & GPIO_PIN(gih->gh_gpio)) == 0) { |
if ((ip & GPIO_PIN(gih->gh_gpio)) == 0) { |
printf("%s: irq_handler: stray interrupt (GEDR=0x%8.x)\n", sc->sc_dev.dv_xname, ip); |
printf("%s: irq_handler: stray interrupt (GEDR=0x%.8x)\n", sc->sc_dev.dv_xname, ip); |
return(1); |
return(1); |
} |
} |
|
|
|
|
|
|
if (gih->gh_irq < 11) |
if (gih->gh_irq < 11) |
/* individual (intc irq = gpio pin), register common gpio handler */ |
/* individual (intc irq = gpio pin), register common gpio handler */ |
ih = sa11x0_intr_establish(NULL, gih->gh_irq, 0, level, sagpio_irq_handler, gih, NULL); |
ih = sa11x0_intr_establish(NULL, gih->gh_irq, 0, spl, sagpio_irq_handler, gih, name); |
else |
else |
/* multiplexed, register dispatcher */ |
/* multiplexed, register dispatcher */ |
ih = sa11x0_intr_establish(NULL, gih->gh_irq, 0, level, sagpio_dispatch, NULL, NULL); |
ih = sa11x0_intr_establish(NULL, gih->gh_irq, 0, spl, sagpio_dispatch, NULL, name); |
return(ih); |
return(ih); |
} |
} |
|
|