linux/arch/powerpc/platforms/85xx/mvme2500.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0-or-later
   2/*
   3 * Board setup routines for the Emerson/Artesyn MVME2500
   4 *
   5 * Copyright 2014 Elettra-Sincrotrone Trieste S.C.p.A.
   6 *
   7 * Based on earlier code by:
   8 *
   9 *      Xianghua Xiao (x.xiao@freescale.com)
  10 *      Tom Armistead (tom.armistead@emerson.com)
  11 *      Copyright 2012 Emerson
  12 *
  13 * Author Alessio Igor Bogani <alessio.bogani@elettra.eu>
  14 */
  15
  16#include <linux/pci.h>
  17#include <asm/udbg.h>
  18#include <asm/mpic.h>
  19#include <sysdev/fsl_soc.h>
  20#include <sysdev/fsl_pci.h>
  21
  22#include "mpc85xx.h"
  23
  24void __init mvme2500_pic_init(void)
  25{
  26        struct mpic *mpic = mpic_alloc(NULL, 0,
  27                  MPIC_BIG_ENDIAN | MPIC_SINGLE_DEST_CPU,
  28                0, 256, " OpenPIC  ");
  29        BUG_ON(mpic == NULL);
  30        mpic_init(mpic);
  31}
  32
  33/*
  34 * Setup the architecture
  35 */
  36static void __init mvme2500_setup_arch(void)
  37{
  38        if (ppc_md.progress)
  39                ppc_md.progress("mvme2500_setup_arch()", 0);
  40        fsl_pci_assign_primary();
  41        pr_info("MVME2500 board from Artesyn\n");
  42}
  43
  44machine_arch_initcall(mvme2500, mpc85xx_common_publish_devices);
  45
  46/*
  47 * Called very early, device-tree isn't unflattened
  48 */
  49static int __init mvme2500_probe(void)
  50{
  51        return of_machine_is_compatible("artesyn,MVME2500");
  52}
  53
  54define_machine(mvme2500) {
  55        .name                   = "MVME2500",
  56        .probe                  = mvme2500_probe,
  57        .setup_arch             = mvme2500_setup_arch,
  58        .init_IRQ               = mvme2500_pic_init,
  59#ifdef CONFIG_PCI
  60        .pcibios_fixup_bus      = fsl_pcibios_fixup_bus,
  61        .pcibios_fixup_phb      = fsl_pcibios_fixup_phb,
  62#endif
  63        .get_irq                = mpic_get_irq,
  64        .calibrate_decr         = generic_calibrate_decr,
  65        .progress               = udbg_progress,
  66};
  67