As a device for pci node isn't created, create a special platform_device
for PCI EDAC device on MPC85xx.

Signed-off-by: Dmitry Eremin-Solenikov <dbarysh...@gmail.com>
---
 arch/powerpc/sysdev/fsl_pci.c |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
index 68ca929..0e37259 100644
--- a/arch/powerpc/sysdev/fsl_pci.c
+++ b/arch/powerpc/sysdev/fsl_pci.c
@@ -381,6 +381,39 @@ int __init fsl_add_bridge(struct device_node *dev, int 
is_primary)
        return 0;
 }
 
+int __init fsl_add_pci_err(void)
+{
+       struct device_node *np;
+
+       for_each_node_by_type(np, "pci") {
+               /* Only PCI, not PCI Express! */
+               if (of_device_is_compatible(np, "fsl,mpc8540-pci")) {
+                       struct resource r[2];
+
+                       r[0].parent = NULL;
+                       r[1].parent = NULL;
+
+                       if (of_address_to_resource(np, 0, &r[0])) {
+                               printk(KERN_WARNING
+                                               "Can't get register base for 
PCI EDAC!\n");
+                               continue;
+                       }
+                       r[0].start += 0xe00;
+
+                       if (of_irq_to_resource(np, 0, &r[1]) == NO_IRQ) {
+                               printk(KERN_WARNING
+                                               "Can't get irq for PCI 
EDAC!\n");
+                               continue;
+                       }
+                       platform_device_register_simple("mpc85xx_pci_err", -1,
+                                       r, ARRAY_SIZE(r));
+               }
+       }
+
+       return 0;
+}
+device_initcall(fsl_add_pci_err);
+
 DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8548E, 
quirk_fsl_pcie_header);
 DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8548, quirk_fsl_pcie_header);
 DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8543E, 
quirk_fsl_pcie_header);
-- 
1.7.4.4

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to