1 /* 2 * Canyonlands board specific routines 3 * 4 * Copyright 2008 DENX Software Engineering, Stefan Roese <sr@denx.de> 5 * 6 * Based on the Katmai code by 7 * Benjamin Herrenschmidt <benh@kernel.crashing.org> 8 * Copyright 2007 IBM Corp. 9 * Josh Boyer <jwboyer@linux.vnet.ibm.com> 10 * Copyright 2007 IBM Corporation 11 * 12 * This program is free software; you can redistribute it and/or modify it 13 * under the terms of the GNU General Public License as published by the 14 * Free Software Foundation; either version 2 of the License, or (at your 15 * option) any later version. 16 */ 17 #include <linux/init.h> 18 #include <linux/of_platform.h> 19 20 #include <asm/machdep.h> 21 #include <asm/prom.h> 22 #include <asm/udbg.h> 23 #include <asm/time.h> 24 #include <asm/uic.h> 25 #include <asm/pci-bridge.h> 26 #include <asm/ppc4xx.h> 27 28 static __initdata struct of_device_id canyonlands_of_bus[] = { 29 { .compatible = "ibm,plb4", }, 30 { .compatible = "ibm,opb", }, 31 { .compatible = "ibm,ebc", }, 32 {}, 33 }; 34 35 static int __init canyonlands_device_probe(void) 36 { 37 of_platform_bus_probe(NULL, canyonlands_of_bus, NULL); 38 39 return 0; 40 } 41 machine_device_initcall(canyonlands, canyonlands_device_probe); 42 43 static int __init canyonlands_probe(void) 44 { 45 unsigned long root = of_get_flat_dt_root(); 46 47 if (!of_flat_dt_is_compatible(root, "amcc,canyonlands")) 48 return 0; 49 50 ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC; 51 52 return 1; 53 } 54 55 define_machine(canyonlands) { 56 .name = "Canyonlands", 57 .probe = canyonlands_probe, 58 .progress = udbg_progress, 59 .init_IRQ = uic_init_tree, 60 .get_irq = uic_get_irq, 61 .restart = ppc4xx_reset_system, 62 .calibrate_decr = generic_calibrate_decr, 63 }; 64