1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /* 3 * BSC913xRDB Board Setup 4 * 5 * Author: Priyanka Jain <Priyanka.Jain@freescale.com> 6 * 7 * Copyright 2011-2012 Freescale Semiconductor Inc. 8 */ 9 10 #include <linux/of_platform.h> 11 #include <linux/pci.h> 12 #include <asm/mpic.h> 13 #include <sysdev/fsl_soc.h> 14 #include <asm/udbg.h> 15 16 #include "mpc85xx.h" 17 18 void __init bsc913x_rdb_pic_init(void) 19 { 20 struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN | 21 MPIC_SINGLE_DEST_CPU, 22 0, 256, " OpenPIC "); 23 24 if (!mpic) 25 pr_err("bsc913x: Failed to allocate MPIC structure\n"); 26 else 27 mpic_init(mpic); 28 } 29 30 /* 31 * Setup the architecture 32 */ 33 static void __init bsc913x_rdb_setup_arch(void) 34 { 35 if (ppc_md.progress) 36 ppc_md.progress("bsc913x_rdb_setup_arch()", 0); 37 38 pr_info("bsc913x board from Freescale Semiconductor\n"); 39 } 40 41 machine_device_initcall(bsc9131_rdb, mpc85xx_common_publish_devices); 42 43 /* 44 * Called very early, device-tree isn't unflattened 45 */ 46 47 static int __init bsc9131_rdb_probe(void) 48 { 49 return of_machine_is_compatible("fsl,bsc9131rdb"); 50 } 51 52 define_machine(bsc9131_rdb) { 53 .name = "BSC9131 RDB", 54 .probe = bsc9131_rdb_probe, 55 .setup_arch = bsc913x_rdb_setup_arch, 56 .init_IRQ = bsc913x_rdb_pic_init, 57 .get_irq = mpic_get_irq, 58 .calibrate_decr = generic_calibrate_decr, 59 .progress = udbg_progress, 60 }; 61