2019-06-04 10:11:33 +02:00
// SPDX-License-Identifier: GPL-2.0-only
2005-04-16 15:20:36 -07:00
/*
2006-10-03 23:01:26 +02:00
* arch / arm / mach - ixp4xx / ixdpg425 - pci . c
2005-04-16 15:20:36 -07:00
*
* PCI setup routines for Intel IXDPG425 Platform
*
* Copyright ( C ) 2004 MontaVista Softwrae , Inc .
*
* Maintainer : Deepak Saxena < dsaxena @ plexity . net >
*/
# include <linux/kernel.h>
# include <linux/pci.h>
# include <linux/init.h>
2006-07-01 23:01:49 +01:00
# include <linux/irq.h>
2005-04-16 15:20:36 -07:00
# include <asm/mach-types.h>
2008-08-05 16:14:15 +01:00
# include <mach/hardware.h>
2005-04-16 15:20:36 -07:00
# include <asm/mach/pci.h>
2018-12-29 15:47:52 +01:00
# include "irqs.h"
2005-04-16 15:20:36 -07:00
void __init ixdpg425_pci_preinit ( void )
{
2011-03-24 13:25:22 +01:00
irq_set_irq_type ( IRQ_IXP4XX_GPIO6 , IRQ_TYPE_LEVEL_LOW ) ;
irq_set_irq_type ( IRQ_IXP4XX_GPIO7 , IRQ_TYPE_LEVEL_LOW ) ;
2005-04-16 15:20:36 -07:00
ixp4xx_pci_preinit ( ) ;
}
2011-06-10 15:30:21 +01:00
static int __init ixdpg425_map_irq ( const struct pci_dev * dev , u8 slot , u8 pin )
2005-04-16 15:20:36 -07:00
{
if ( slot = = 12 | | slot = = 13 )
return IRQ_IXP4XX_GPIO7 ;
else if ( slot = = 14 )
return IRQ_IXP4XX_GPIO6 ;
else return - 1 ;
}
struct hw_pci ixdpg425_pci __initdata = {
. nr_controllers = 1 ,
2012-03-10 12:49:16 +00:00
. ops = & ixp4xx_ops ,
2005-04-16 15:20:36 -07:00
. preinit = ixdpg425_pci_preinit ,
. setup = ixp4xx_setup ,
. map_irq = ixdpg425_map_irq ,
} ;
int __init ixdpg425_pci_init ( void )
{
if ( machine_is_ixdpg425 ( ) )
pci_common_init ( & ixdpg425_pci ) ;
return 0 ;
}
subsys_initcall ( ixdpg425_pci_init ) ;