1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /* 3 * BSC913xQDS Board Setup 4 * 5 * Author: 6 * Harninder Rai <harninder.rai@freescale.com> 7 * Priyanka Jain <Priyanka.Jain@freescale.com> 8 * 9 * Copyright 2014 Freescale Semiconductor Inc. 10 */ 11 12 #include <linux/of.h> 13 #include <linux/pci.h> 14 #include <asm/mpic.h> 15 #include <sysdev/fsl_soc.h> 16 #include <sysdev/fsl_pci.h> 17 #include <asm/udbg.h> 18 19 #include "mpc85xx.h" 20 #include "smp.h" 21 22 static void __init bsc913x_qds_pic_init(void) 23 { 24 struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN | 25 MPIC_SINGLE_DEST_CPU, 26 0, 256, " OpenPIC "); 27 28 if (!mpic) 29 pr_err("bsc913x: Failed to allocate MPIC structure\n"); 30 else 31 mpic_init(mpic); 32 } 33 34 /* 35 * Setup the architecture 36 */ 37 static void __init bsc913x_qds_setup_arch(void) 38 { 39 if (ppc_md.progress) 40 ppc_md.progress("bsc913x_qds_setup_arch()", 0); 41 42 #if defined(CONFIG_SMP) 43 mpc85xx_smp_init(); 44 #endif 45 46 fsl_pci_assign_primary(); 47 48 pr_info("bsc913x board from Freescale Semiconductor\n"); 49 } 50 51 machine_arch_initcall(bsc9132_qds, mpc85xx_common_publish_devices); 52 53 define_machine(bsc9132_qds) { 54 .name = "BSC9132 QDS", 55 .compatible = "fsl,bsc9132qds", 56 .setup_arch = bsc913x_qds_setup_arch, 57 .init_IRQ = bsc913x_qds_pic_init, 58 #ifdef CONFIG_PCI 59 .pcibios_fixup_bus = fsl_pcibios_fixup_bus, 60 #endif 61 .get_irq = mpic_get_irq, 62 .progress = udbg_progress, 63 }; 64