bsc913x_qds.c (1547B)
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_platform.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 53/* 54 * Called very early, device-tree isn't unflattened 55 */ 56 57static int __init bsc9132_qds_probe(void) 58{ 59 return of_machine_is_compatible("fsl,bsc9132qds"); 60} 61 62define_machine(bsc9132_qds) { 63 .name = "BSC9132 QDS", 64 .probe = bsc9132_qds_probe, 65 .setup_arch = bsc913x_qds_setup_arch, 66 .init_IRQ = bsc913x_qds_pic_init, 67#ifdef CONFIG_PCI 68 .pcibios_fixup_bus = fsl_pcibios_fixup_bus, 69#endif 70 .get_irq = mpic_get_irq, 71 .calibrate_decr = generic_calibrate_decr, 72 .progress = udbg_progress, 73};