1 /* 2 * BSC913xRDB Board Setup 3 * 4 * Author: Priyanka Jain <Priyanka.Jain@freescale.com> 5 * 6 * Copyright 2011-2012 Freescale Semiconductor Inc. 7 * 8 * This program is free software; you can redistribute it and/or modify it 9 * under the terms of the GNU General Public License as published by the 10 * Free Software Foundation; either version 2 of the License, or (at your 11 * option) any later version. 12 */ 13 14 #include <linux/of_platform.h> 15 #include <linux/pci.h> 16 #include <asm/mpic.h> 17 #include <sysdev/fsl_soc.h> 18 #include <asm/udbg.h> 19 20 #include "mpc85xx.h" 21 22 void __init bsc913x_rdb_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_rdb_setup_arch(void) 38 { 39 if (ppc_md.progress) 40 ppc_md.progress("bsc913x_rdb_setup_arch()", 0); 41 42 pr_info("bsc913x board from Freescale Semiconductor\n"); 43 } 44 45 machine_device_initcall(bsc9131_rdb, mpc85xx_common_publish_devices); 46 47 /* 48 * Called very early, device-tree isn't unflattened 49 */ 50 51 static int __init bsc9131_rdb_probe(void) 52 { 53 unsigned long root = of_get_flat_dt_root(); 54 55 return of_flat_dt_is_compatible(root, "fsl,bsc9131rdb"); 56 } 57 58 define_machine(bsc9131_rdb) { 59 .name = "BSC9131 RDB", 60 .probe = bsc9131_rdb_probe, 61 .setup_arch = bsc913x_rdb_setup_arch, 62 .init_IRQ = bsc913x_rdb_pic_init, 63 .get_irq = mpic_get_irq, 64 .restart = fsl_rstcr_restart, 65 .calibrate_decr = generic_calibrate_decr, 66 .progress = udbg_progress, 67 }; 68