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