2019-06-01 10:08:55 +02:00
// SPDX-License-Identifier: GPL-2.0-only
2008-08-19 11:25:15 -04:00
/*
* Generic PowerPC 44 x platform support
*
* Copyright 2008 IBM Corporation
*
* This implements simple platform support for PowerPC 44 x chips . This is
* mostly used for eval boards or other simple and " generic " 44 x boards . If
* your board has custom functions or hardware , then you will likely want to
* implement your own board . c file to accommodate it .
*/
# include <asm/machdep.h>
# include <asm/pci-bridge.h>
# include <asm/ppc4xx.h>
# include <asm/time.h>
# include <asm/udbg.h>
# include <asm/uic.h>
# include <linux/init.h>
# include <linux/of_platform.h>
2014-09-10 21:56:38 +02:00
static const struct of_device_id ppc44x_of_bus [ ] __initconst = {
2008-08-19 11:25:15 -04:00
{ . compatible = " ibm,plb4 " , } ,
{ . compatible = " ibm,opb " , } ,
{ . compatible = " ibm,ebc " , } ,
{ . compatible = " simple-bus " , } ,
{ } ,
} ;
static int __init ppc44x_device_probe ( void )
{
of_platform_bus_probe ( NULL , ppc44x_of_bus , NULL ) ;
return 0 ;
}
machine_device_initcall ( ppc44x_simple , ppc44x_device_probe ) ;
/* This is the list of boards that can be supported by this simple
* platform code . This does _not_ mean the boards are compatible ,
* as they most certainly are not from a device tree perspective .
* However , their differences are handled by the device tree and the
* drivers and therefore they don ' t need custom board support files .
*
* Again , if your board needs to do things differently then create a
* board . c file for it rather than adding it to this list .
*/
static char * board [ ] __initdata = {
2008-10-01 23:29:06 -07:00
" amcc,arches " ,
2008-08-19 11:25:15 -04:00
" amcc,bamboo " ,
2011-12-20 02:43:34 +00:00
" apm,bluestone " ,
2008-08-19 11:27:01 -04:00
" amcc,glacier " ,
2008-08-19 11:25:15 -04:00
" ibm,ebony " ,
2009-08-12 14:38:47 +00:00
" amcc,eiger " ,
2008-08-19 11:25:15 -04:00
" amcc,katmai " ,
" amcc,rainier " ,
2009-02-05 13:31:36 +00:00
" amcc,redwood " ,
2008-08-19 11:25:15 -04:00
" amcc,sequoia " ,
2008-08-19 11:27:05 -04:00
" amcc,taishan " ,
2010-05-11 03:55:34 +00:00
" amcc,yosemite " ,
" mosaixtech,icon "
2008-08-19 11:25:15 -04:00
} ;
static int __init ppc44x_probe ( void )
{
int i = 0 ;
for ( i = 0 ; i < ARRAY_SIZE ( board ) ; i + + ) {
2016-07-05 15:04:05 +10:00
if ( of_machine_is_compatible ( board [ i ] ) ) {
2011-07-12 09:25:51 -05:00
pci_set_flags ( PCI_REASSIGN_ALL_RSRC ) ;
2008-08-19 11:25:15 -04:00
return 1 ;
}
}
return 0 ;
}
define_machine ( ppc44x_simple ) {
. name = " PowerPC 44x Platform " ,
. probe = ppc44x_probe ,
. progress = udbg_progress ,
. init_IRQ = uic_init_tree ,
. get_irq = uic_get_irq ,
. restart = ppc4xx_reset_system ,
. calibrate_decr = generic_calibrate_decr ,
} ;