1/* 2 * P4080 DS Setup 3 * 4 * Maintained by Kumar Gala (see MAINTAINERS for contact information) 5 * 6 * Copyright 2009 Freescale Semiconductor Inc. 7 * 8 * This program is free software; you can redistribute it and/or modify it 9 * under the terms of the GNU General Public License as published by the 10 * Free Software Foundation; either version 2 of the License, or (at your 11 * option) any later version. 12 */ 13 14#include <linux/kernel.h> 15#include <linux/pci.h> 16#include <linux/kdev_t.h> 17#include <linux/delay.h> 18#include <linux/interrupt.h> 19 20#include <asm/system.h> 21#include <asm/time.h> 22#include <asm/machdep.h> 23#include <asm/pci-bridge.h> 24#include <mm/mmu_decl.h> 25#include <asm/prom.h> 26#include <asm/udbg.h> 27#include <asm/mpic.h> 28 29#include <linux/of_platform.h> 30#include <sysdev/fsl_soc.h> 31#include <sysdev/fsl_pci.h> 32 33#include "corenet_ds.h" 34 35#ifdef CONFIG_PCI 36static int primary_phb_addr; 37#endif 38 39/* 40 * Called very early, device-tree isn't unflattened 41 */ 42static int __init p4080_ds_probe(void) 43{ 44 unsigned long root = of_get_flat_dt_root(); 45 46 if (of_flat_dt_is_compatible(root, "fsl,P4080DS")) { 47#ifdef CONFIG_PCI 48 /* treat PCIe1 as primary, 49 * shouldn't matter as we have no ISA on the board 50 */ 51 primary_phb_addr = 0x0000; 52#endif 53 return 1; 54 } else { 55 return 0; 56 } 57} 58 59define_machine(p4080_ds) { 60 .name = "P4080 DS", 61 .probe = p4080_ds_probe, 62 .setup_arch = corenet_ds_setup_arch, 63 .init_IRQ = corenet_ds_pic_init, 64#ifdef CONFIG_PCI 65 .pcibios_fixup_bus = fsl_pcibios_fixup_bus, 66#endif 67 .get_irq = mpic_get_coreint_irq, 68 .restart = fsl_rstcr_restart, 69 .calibrate_decr = generic_calibrate_decr, 70 .progress = udbg_progress, 71}; 72 73machine_device_initcall(p4080_ds, corenet_ds_publish_devices); 74machine_arch_initcall(p4080_ds, swiotlb_setup_bus_notifier); 75