21 #include <linux/stddef.h>
22 #include <linux/kernel.h>
23 #include <linux/pci.h>
24 #include <linux/kdev_t.h>
26 #include <linux/module.h>
31 #include <linux/serial.h>
32 #include <linux/tty.h>
33 #include <linux/serial_core.h>
36 #include <asm/machdep.h>
40 #include <asm/pci-bridge.h>
49 #define DBG(fmt...) do { printk(fmt); } while(0)
51 #define DBG(fmt...) do { } while(0)
54 #define MPC7448HPC2_PCI_CFG_PHYS 0xfb000000
59 if (bus == 0 &&
PCI_SLOT(devfn) == 0)
65 static void __init mpc7448_hpc2_setup_arch(
void)
69 ppc_md.progress(
"mpc7448_hpc2_setup_arch():set_bridge", 0);
75 for_each_compatible_node(np,
"pci",
"tsi108-pci")
85 "Jointly ported by Freescale and Tundra Semiconductor\n");
87 "Enabling L2 cache then enabling the HID0 prefetch engine.\n");
101 static void __init mpc7448_hpc2_init_IRQ(
void)
105 unsigned int cascade_pci_irq;
111 MPIC_SPV_EOI | MPIC_NO_PTHROU_DIS | MPIC_REGSET_TSI108,
123 if (tsi_pci ==
NULL) {
124 printk(
"%s: No tsi108 pci node found !\n", __func__);
128 if (cascade_node ==
NULL) {
129 printk(
"%s: No tsi108 pci cascade node found !\n", __func__);
134 DBG(
"%s: tsi108 cascade_pci_irq = 0x%x\n", __func__,
135 (
u32) cascade_pci_irq);
146 seq_printf(m,
"vendor\t\t: Freescale Semiconductor\n");
154 _nmask_and_or_msr(0, MSR_IP);
173 static int __init mpc7448_hpc2_probe(
void)
175 unsigned long root = of_get_flat_dt_root();
177 if (!of_flat_dt_is_compatible(root,
"mpc74xx"))
182 static int mpc7448_machine_check_exception(
struct pt_regs *
regs)
197 .name =
"MPC7448 HPC2",
198 .probe = mpc7448_hpc2_probe,
199 .setup_arch = mpc7448_hpc2_setup_arch,
200 .init_IRQ = mpc7448_hpc2_init_IRQ,
205 .machine_check_exception= mpc7448_machine_check_exception,