Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-or-later
0002 /*
0003  * BSC913xQDS Board Setup
0004  *
0005  * Author:
0006  *   Harninder Rai <harninder.rai@freescale.com>
0007  *   Priyanka Jain <Priyanka.Jain@freescale.com>
0008  *
0009  * Copyright 2014 Freescale Semiconductor Inc.
0010  */
0011 
0012 #include <linux/of_platform.h>
0013 #include <linux/pci.h>
0014 #include <asm/mpic.h>
0015 #include <sysdev/fsl_soc.h>
0016 #include <sysdev/fsl_pci.h>
0017 #include <asm/udbg.h>
0018 
0019 #include "mpc85xx.h"
0020 #include "smp.h"
0021 
0022 void __init bsc913x_qds_pic_init(void)
0023 {
0024     struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN |
0025       MPIC_SINGLE_DEST_CPU,
0026       0, 256, " OpenPIC  ");
0027 
0028     if (!mpic)
0029         pr_err("bsc913x: Failed to allocate MPIC structure\n");
0030     else
0031         mpic_init(mpic);
0032 }
0033 
0034 /*
0035  * Setup the architecture
0036  */
0037 static void __init bsc913x_qds_setup_arch(void)
0038 {
0039     if (ppc_md.progress)
0040         ppc_md.progress("bsc913x_qds_setup_arch()", 0);
0041 
0042 #if defined(CONFIG_SMP)
0043     mpc85xx_smp_init();
0044 #endif
0045 
0046     fsl_pci_assign_primary();
0047 
0048     pr_info("bsc913x board from Freescale Semiconductor\n");
0049 }
0050 
0051 machine_arch_initcall(bsc9132_qds, mpc85xx_common_publish_devices);
0052 
0053 /*
0054  * Called very early, device-tree isn't unflattened
0055  */
0056 
0057 static int __init bsc9132_qds_probe(void)
0058 {
0059     return of_machine_is_compatible("fsl,bsc9132qds");
0060 }
0061 
0062 define_machine(bsc9132_qds) {
0063     .name           = "BSC9132 QDS",
0064     .probe          = bsc9132_qds_probe,
0065     .setup_arch     = bsc913x_qds_setup_arch,
0066     .init_IRQ       = bsc913x_qds_pic_init,
0067 #ifdef CONFIG_PCI
0068     .pcibios_fixup_bus  = fsl_pcibios_fixup_bus,
0069 #endif
0070     .get_irq        = mpic_get_irq,
0071     .calibrate_decr     = generic_calibrate_decr,
0072     .progress       = udbg_progress,
0073 };