15 #include <linux/stddef.h>
16 #include <linux/kernel.h>
17 #include <linux/pci.h>
18 #include <linux/kdev_t.h>
24 #include <asm/machdep.h>
25 #include <asm/pci-bridge.h>
29 #include <asm/swiotlb.h>
41 #define DBG(fmt...) do { printk(KERN_ERR fmt); } while(0)
43 #define DBG(fmt...) do { } while(0)
53 if (hose->dn == fsl_pci_primary)
62 mpc86xx_hpcn_setup_arch(
void)
65 ppc_md.progress(
"mpc86xx_hpcn_setup_arch()", 0);
68 ppc_md.pci_exclude_device = mpc86xx_exclude_device;
71 printk(
"MPC86xx HPCN board from Freescale Semiconductor\n");
77 fsl_pci_assign_primary();
84 mpc86xx_hpcn_show_cpuinfo(
struct seq_file *
m)
88 seq_printf(m,
"Vendor\t\t: Freescale Semiconductor\n");
97 static int __init mpc86xx_hpcn_probe(
void)
99 unsigned long root = of_get_flat_dt_root();
101 if (of_flat_dt_is_compatible(root,
"fsl,mpc8641hpcn"))
105 if (of_flat_dt_is_compatible(root,
"mpc86xx")) {
106 pr_warning(
"WARNING: your dts/dtb is old. You must update before the next kernel release\n");
114 mpc86xx_time_init(
void)
122 temp =
mfspr(SPRN_HID0);
124 mtspr(SPRN_HID0, temp);
125 asm volatile(
"isync");
131 { .compatible =
"simple-bus", },
132 { .compatible =
"fsl,srio", },
133 { .compatible =
"gianfar", },
134 { .compatible =
"fsl,mpc8641-pcie", },
138 static int __init declare_of_platform_devices(
void)
140 of_platform_bus_probe(
NULL, of_bus_ids,
NULL);
148 .name =
"MPC86xx HPCN",
149 .probe = mpc86xx_hpcn_probe,
150 .setup_arch = mpc86xx_hpcn_setup_arch,
152 .show_cpuinfo = mpc86xx_hpcn_show_cpuinfo,
154 .restart = fsl_rstcr_restart,
155 .time_init = mpc86xx_time_init,
159 .pcibios_fixup_bus = fsl_pcibios_fixup_bus,