2007-10-02 12:15:29 +10:00
/*
* Xilinx Virtex ( IIpro & 4F X ) based board support
*
* Copyright 2007 Secret Lab Technologies Ltd .
*
* This file is licensed under the terms of the GNU General Public License
* version 2. This program is licensed " as is " without any warranty of any
* kind , whether express or implied .
*/
# include <linux/init.h>
# include <linux/of_platform.h>
# include <asm/machdep.h>
# include <asm/prom.h>
# include <asm/time.h>
# include <asm/xilinx_intc.h>
2009-06-06 10:14:22 -06:00
# include <asm/xilinx_pci.h>
2008-03-28 01:43:31 +11:00
# include <asm/ppc4xx.h>
2007-10-02 12:15:29 +10:00
2008-01-09 06:35:06 +11:00
static struct of_device_id xilinx_of_bus_ids [ ] __initdata = {
{ . compatible = " xlnx,plb-v46-1.00.a " , } ,
{ . compatible = " xlnx,plb-v34-1.01.a " , } ,
{ . compatible = " xlnx,plb-v34-1.02.a " , } ,
{ . compatible = " xlnx,opb-v20-1.10.c " , } ,
{ . compatible = " xlnx,dcr-v29-1.00.a " , } ,
{ . compatible = " xlnx,compound " , } ,
{ }
} ;
2007-10-02 12:15:29 +10:00
static int __init virtex_device_probe ( void )
{
2008-01-09 06:35:06 +11:00
of_platform_bus_probe ( NULL , xilinx_of_bus_ids , NULL ) ;
2007-10-02 12:15:29 +10:00
return 0 ;
}
2007-12-24 10:42:02 -06:00
machine_device_initcall ( virtex , virtex_device_probe ) ;
2007-10-02 12:15:29 +10:00
static int __init virtex_probe ( void )
{
unsigned long root = of_get_flat_dt_root ( ) ;
2008-01-09 06:35:05 +11:00
if ( ! of_flat_dt_is_compatible ( root , " xlnx,virtex " ) )
2007-10-02 12:15:29 +10:00
return 0 ;
return 1 ;
}
define_machine ( virtex ) {
. name = " Xilinx Virtex " ,
. probe = virtex_probe ,
2009-06-06 10:14:22 -06:00
. setup_arch = xilinx_pci_init ,
2007-10-02 12:15:29 +10:00
. init_IRQ = xilinx_intc_init_tree ,
. get_irq = xilinx_intc_get_irq ,
2008-03-28 01:43:31 +11:00
. restart = ppc4xx_reset_system ,
2007-10-02 12:15:29 +10:00
. calibrate_decr = generic_calibrate_decr ,
} ;