forked from Minki/linux
2abbbb63c9
- implement all of the init, init early, and setup arch routines in the shared source file for the MPC512x PowerPC platform, and make all MPC512x based boards (ADS, PDM, generic) use those common routines - remove declarations from header files for routines which aren't referenced from external callers any longer this modification concentrates knowledge about the optional FSL DIU support in one spot within the shared code, and makes all boards benefit transparently from future improvements in the shared platform code the change does not modify any behaviour but preserves all code paths Signed-off-by: Gerhard Sittig <gsi@denx.de> Signed-off-by: Anatolij Gustschin <agust@denx.de>
76 lines
1.7 KiB
C
76 lines
1.7 KiB
C
/*
|
|
* Copyright (C) 2007, 2008 Freescale Semiconductor, Inc. All rights reserved.
|
|
*
|
|
* Author: John Rigby, <jrigby@freescale.com>, Thur Mar 29 2007
|
|
*
|
|
* Description:
|
|
* MPC5121 ADS board setup
|
|
*
|
|
* This is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
*/
|
|
|
|
#include <linux/kernel.h>
|
|
#include <linux/io.h>
|
|
#include <linux/of_platform.h>
|
|
|
|
#include <asm/machdep.h>
|
|
#include <asm/ipic.h>
|
|
#include <asm/prom.h>
|
|
#include <asm/time.h>
|
|
|
|
#include <sysdev/fsl_pci.h>
|
|
|
|
#include "mpc512x.h"
|
|
#include "mpc5121_ads.h"
|
|
|
|
static void __init mpc5121_ads_setup_arch(void)
|
|
{
|
|
#ifdef CONFIG_PCI
|
|
struct device_node *np;
|
|
#endif
|
|
printk(KERN_INFO "MPC5121 ADS board from Freescale Semiconductor\n");
|
|
/*
|
|
* cpld regs are needed early
|
|
*/
|
|
mpc5121_ads_cpld_map();
|
|
|
|
#ifdef CONFIG_PCI
|
|
for_each_compatible_node(np, "pci", "fsl,mpc5121-pci")
|
|
mpc83xx_add_bridge(np);
|
|
#endif
|
|
|
|
mpc512x_setup_arch();
|
|
}
|
|
|
|
static void __init mpc5121_ads_init_IRQ(void)
|
|
{
|
|
mpc512x_init_IRQ();
|
|
mpc5121_ads_cpld_pic_init();
|
|
}
|
|
|
|
/*
|
|
* Called very early, MMU is off, device-tree isn't unflattened
|
|
*/
|
|
static int __init mpc5121_ads_probe(void)
|
|
{
|
|
unsigned long root = of_get_flat_dt_root();
|
|
|
|
return of_flat_dt_is_compatible(root, "fsl,mpc5121ads");
|
|
}
|
|
|
|
define_machine(mpc5121_ads) {
|
|
.name = "MPC5121 ADS",
|
|
.probe = mpc5121_ads_probe,
|
|
.setup_arch = mpc5121_ads_setup_arch,
|
|
.init = mpc512x_init,
|
|
.init_early = mpc512x_init_early,
|
|
.init_IRQ = mpc5121_ads_init_IRQ,
|
|
.get_irq = ipic_get_irq,
|
|
.calibrate_decr = generic_calibrate_decr,
|
|
.restart = mpc512x_restart,
|
|
};
|