162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2007,2008 Freescale Semiconductor, Inc. All rights reserved.
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Author: John Rigby, <jrigby@freescale.com>
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci * Description:
862306a36Sopenharmony_ci * MPC512x SoC setup
962306a36Sopenharmony_ci */
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include <linux/kernel.h>
1262306a36Sopenharmony_ci#include <linux/of.h>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#include <asm/machdep.h>
1562306a36Sopenharmony_ci#include <asm/ipic.h>
1662306a36Sopenharmony_ci#include <asm/time.h>
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci#include "mpc512x.h"
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci/*
2162306a36Sopenharmony_ci * list of supported boards
2262306a36Sopenharmony_ci */
2362306a36Sopenharmony_cistatic const char * const board[] __initconst = {
2462306a36Sopenharmony_ci	"prt,prtlvt",
2562306a36Sopenharmony_ci	"fsl,mpc5125ads",
2662306a36Sopenharmony_ci	"ifm,ac14xx",
2762306a36Sopenharmony_ci	NULL
2862306a36Sopenharmony_ci};
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci/*
3162306a36Sopenharmony_ci * Called very early, MMU is off, device-tree isn't unflattened
3262306a36Sopenharmony_ci */
3362306a36Sopenharmony_cistatic int __init mpc512x_generic_probe(void)
3462306a36Sopenharmony_ci{
3562306a36Sopenharmony_ci	if (!of_device_compatible_match(of_root, board))
3662306a36Sopenharmony_ci		return 0;
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci	mpc512x_init_early();
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci	return 1;
4162306a36Sopenharmony_ci}
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_cidefine_machine(mpc512x_generic) {
4462306a36Sopenharmony_ci	.name			= "MPC512x generic",
4562306a36Sopenharmony_ci	.probe			= mpc512x_generic_probe,
4662306a36Sopenharmony_ci	.init			= mpc512x_init,
4762306a36Sopenharmony_ci	.setup_arch		= mpc512x_setup_arch,
4862306a36Sopenharmony_ci	.init_IRQ		= mpc512x_init_IRQ,
4962306a36Sopenharmony_ci	.get_irq		= ipic_get_irq,
5062306a36Sopenharmony_ci	.restart		= mpc512x_restart,
5162306a36Sopenharmony_ci};
52