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 22void __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 */ 37static 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 51machine_arch_initcall(bsc9132_qds, mpc85xx_common_publish_devices); 52 53define_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