mirror of
https://github.com/torvalds/linux.git
synced 2024-11-19 10:31:48 +00:00
[POWERPC] mpc5200: Add generic support for simple MPC5200 based boards
This patch adds support for 'mpc5200-simple-platform' compatible boards which do not need a platform specific setup. Such boards are supported assuming the following: - GPIO pins are configured by the firmware, - CDM configuration (clocking) is setup correctly by firmware, - if the 'fsl,has-wdt' property is present in one of the gpt nodes, then it is safe to use such gpt to reset the board, - PCI is supported if enabled in the kernel configuration and if there is a PCI bus node defined in the device tree. Signed-off-by: Marian Balakowicz <m8@semihalf.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
This commit is contained in:
parent
0238aa54b5
commit
5b5820d08b
@ -19,7 +19,7 @@
|
||||
/ {
|
||||
model = "fsl,lite5200";
|
||||
// revision = "1.0";
|
||||
compatible = "fsl,lite5200","generic-mpc5200";
|
||||
compatible = "fsl,lite5200";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
/ {
|
||||
model = "fsl,lite5200b";
|
||||
// revision = "1.0";
|
||||
compatible = "fsl,lite5200b","generic-mpc5200";
|
||||
compatible = "fsl,lite5200b";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
|
@ -19,6 +19,28 @@ config PPC_MPC5200_BUGFIX
|
||||
|
||||
It is safe to say 'Y' here
|
||||
|
||||
config PPC_MPC5200_SIMPLE
|
||||
bool "Generic support for simple MPC5200 based boards"
|
||||
depends on PPC_MULTIPLATFORM && PPC32
|
||||
select PPC_MPC5200
|
||||
select DEFAULT_UIMAGE
|
||||
select WANT_DEVICE_TREE
|
||||
default n
|
||||
help
|
||||
This option enables support for a simple MPC52xx based boards which
|
||||
do not need a custom platform specific setup. Such boards are
|
||||
supported assuming the following:
|
||||
|
||||
- GPIO pins are configured by the firmware,
|
||||
- CDM configuration (clocking) is setup correctly by firmware,
|
||||
- if the 'fsl,has-wdt' property is present in one of the
|
||||
gpt nodes, then it is safe to use such gpt to reset the board,
|
||||
- PCI is supported if enabled in the kernel configuration
|
||||
and if there is a PCI bus node defined in the device tree.
|
||||
|
||||
Boards that are compatible with this generic platform support
|
||||
are: 'tqc,tqm5200', 'promess,motionpro', 'schindler,cm5200'.
|
||||
|
||||
config PPC_EFIKA
|
||||
bool "bPlan Efika 5k2. MPC5200B based computer"
|
||||
depends on PPC_MULTIPLATFORM && PPC32
|
||||
@ -31,8 +53,7 @@ config PPC_EFIKA
|
||||
config PPC_LITE5200
|
||||
bool "Freescale Lite5200 Eval Board"
|
||||
depends on PPC_MULTIPLATFORM && PPC32
|
||||
select WANT_DEVICE_TREE
|
||||
select PPC_MPC5200
|
||||
select DEFAULT_UIMAGE
|
||||
select WANT_DEVICE_TREE
|
||||
default n
|
||||
|
||||
|
||||
|
@ -6,6 +6,7 @@ obj-y += mpc52xx_pic.o mpc52xx_common.o
|
||||
obj-$(CONFIG_PCI) += mpc52xx_pci.o
|
||||
endif
|
||||
|
||||
obj-$(CONFIG_PPC_MPC5200_SIMPLE) += mpc5200_simple.o
|
||||
obj-$(CONFIG_PPC_EFIKA) += efika.o
|
||||
obj-$(CONFIG_PPC_LITE5200) += lite5200.o
|
||||
|
||||
|
85
arch/powerpc/platforms/52xx/mpc5200_simple.c
Normal file
85
arch/powerpc/platforms/52xx/mpc5200_simple.c
Normal file
@ -0,0 +1,85 @@
|
||||
/*
|
||||
* Support for 'mpc5200-simple-platform' compatible boards.
|
||||
*
|
||||
* Written by Marian Balakowicz <m8@semihalf.com>
|
||||
* Copyright (C) 2007 Semihalf
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* Description:
|
||||
* This code implements support for a simple MPC52xx based boards which
|
||||
* do not need a custom platform specific setup. Such boards are
|
||||
* supported assuming the following:
|
||||
*
|
||||
* - GPIO pins are configured by the firmware,
|
||||
* - CDM configuration (clocking) is setup correctly by firmware,
|
||||
* - if the 'fsl,has-wdt' property is present in one of the
|
||||
* gpt nodes, then it is safe to use such gpt to reset the board,
|
||||
* - PCI is supported if enabled in the kernel configuration
|
||||
* and if there is a PCI bus node defined in the device tree.
|
||||
*
|
||||
* Boards that are compatible with this generic platform support
|
||||
* are listed in a 'board' table.
|
||||
*/
|
||||
|
||||
#undef DEBUG
|
||||
#include <asm/time.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/mpc52xx.h>
|
||||
|
||||
/*
|
||||
* Setup the architecture
|
||||
*/
|
||||
static void __init mpc5200_simple_setup_arch(void)
|
||||
{
|
||||
if (ppc_md.progress)
|
||||
ppc_md.progress("mpc5200_simple_setup_arch()", 0);
|
||||
|
||||
/* Some mpc5200 & mpc5200b related configuration */
|
||||
mpc5200_setup_xlb_arbiter();
|
||||
|
||||
/* Map wdt for mpc52xx_restart() */
|
||||
mpc52xx_map_wdt();
|
||||
|
||||
mpc52xx_setup_pci();
|
||||
}
|
||||
|
||||
/* list of the supported boards */
|
||||
static char *board[] __initdata = {
|
||||
"promess,motionpro",
|
||||
"schindler,cm5200",
|
||||
"tqc,tqm5200",
|
||||
NULL
|
||||
};
|
||||
|
||||
/*
|
||||
* Called very early, MMU is off, device-tree isn't unflattened
|
||||
*/
|
||||
static int __init mpc5200_simple_probe(void)
|
||||
{
|
||||
unsigned long node = of_get_flat_dt_root();
|
||||
int i = 0;
|
||||
|
||||
while (board[i]) {
|
||||
if (of_flat_dt_is_compatible(node, board[i]))
|
||||
break;
|
||||
i++;
|
||||
}
|
||||
|
||||
return (board[i] != NULL);
|
||||
}
|
||||
|
||||
define_machine(mpc5200_simple_platform) {
|
||||
.name = "mpc5200-simple-platform",
|
||||
.probe = mpc5200_simple_probe,
|
||||
.setup_arch = mpc5200_simple_setup_arch,
|
||||
.init = mpc52xx_declare_of_platform_devices,
|
||||
.init_IRQ = mpc52xx_init_irq,
|
||||
.get_irq = mpc52xx_get_irq,
|
||||
.restart = mpc52xx_restart,
|
||||
.calibrate_decr = generic_calibrate_decr,
|
||||
};
|
Loading…
Reference in New Issue
Block a user