2019-05-27 08:55:05 +02:00
// SPDX-License-Identifier: GPL-2.0-or-later
2005-04-16 15:20:36 -07:00
/*
* fixup - tb0226 . c , The TANBAC TB0226 specific PCI fixups .
*
2009-07-03 00:39:38 +09:00
* Copyright ( C ) 2002 - 2005 Yoichi Yuasa < yuasa @ linux - mips . org >
2005-04-16 15:20:36 -07:00
*/
# include <linux/init.h>
# include <linux/pci.h>
2005-10-14 15:59:00 -07:00
# include <asm/vr41xx/giu.h>
2005-04-16 15:20:36 -07:00
# include <asm/vr41xx/tb0226.h>
2017-09-12 20:36:28 +02:00
int pcibios_map_irq ( const struct pci_dev * dev , u8 slot , u8 pin )
2005-04-16 15:20:36 -07:00
{
int irq = - 1 ;
switch ( slot ) {
case 12 :
vr41xx_set_irq_trigger ( GD82559_1_PIN ,
2005-10-14 15:59:00 -07:00
IRQ_TRIGGER_LEVEL ,
IRQ_SIGNAL_THROUGH ) ;
vr41xx_set_irq_level ( GD82559_1_PIN , IRQ_LEVEL_LOW ) ;
2005-04-16 15:20:36 -07:00
irq = GD82559_1_IRQ ;
break ;
case 13 :
vr41xx_set_irq_trigger ( GD82559_2_PIN ,
2005-10-14 15:59:00 -07:00
IRQ_TRIGGER_LEVEL ,
IRQ_SIGNAL_THROUGH ) ;
vr41xx_set_irq_level ( GD82559_2_PIN , IRQ_LEVEL_LOW ) ;
2005-04-16 15:20:36 -07:00
irq = GD82559_2_IRQ ;
break ;
case 14 :
switch ( pin ) {
case 1 :
vr41xx_set_irq_trigger ( UPD720100_INTA_PIN ,
2005-10-14 15:59:00 -07:00
IRQ_TRIGGER_LEVEL ,
IRQ_SIGNAL_THROUGH ) ;
2005-04-16 15:20:36 -07:00
vr41xx_set_irq_level ( UPD720100_INTA_PIN ,
2005-10-14 15:59:00 -07:00
IRQ_LEVEL_LOW ) ;
2005-04-16 15:20:36 -07:00
irq = UPD720100_INTA_IRQ ;
break ;
case 2 :
vr41xx_set_irq_trigger ( UPD720100_INTB_PIN ,
2005-10-14 15:59:00 -07:00
IRQ_TRIGGER_LEVEL ,
IRQ_SIGNAL_THROUGH ) ;
2005-04-16 15:20:36 -07:00
vr41xx_set_irq_level ( UPD720100_INTB_PIN ,
2005-10-14 15:59:00 -07:00
IRQ_LEVEL_LOW ) ;
2005-04-16 15:20:36 -07:00
irq = UPD720100_INTB_IRQ ;
break ;
case 3 :
vr41xx_set_irq_trigger ( UPD720100_INTC_PIN ,
2005-10-14 15:59:00 -07:00
IRQ_TRIGGER_LEVEL ,
IRQ_SIGNAL_THROUGH ) ;
2005-04-16 15:20:36 -07:00
vr41xx_set_irq_level ( UPD720100_INTC_PIN ,
2005-10-14 15:59:00 -07:00
IRQ_LEVEL_LOW ) ;
2005-04-16 15:20:36 -07:00
irq = UPD720100_INTC_IRQ ;
break ;
default :
break ;
}
break ;
default :
break ;
}
return irq ;
}
/* Do platform specific device initialization at pci_enable_device() time */
int pcibios_plat_dev_init ( struct pci_dev * dev )
{
return 0 ;
}