18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (C) 2007,2008 Freescale Semiconductor, Inc. All rights reserved.
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Author: John Rigby, <jrigby@freescale.com>
68c2ecf20Sopenharmony_ci *
78c2ecf20Sopenharmony_ci * Description:
88c2ecf20Sopenharmony_ci * MPC512x SoC setup
98c2ecf20Sopenharmony_ci */
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci#include <linux/kernel.h>
128c2ecf20Sopenharmony_ci#include <linux/of_platform.h>
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci#include <asm/machdep.h>
158c2ecf20Sopenharmony_ci#include <asm/ipic.h>
168c2ecf20Sopenharmony_ci#include <asm/prom.h>
178c2ecf20Sopenharmony_ci#include <asm/time.h>
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci#include "mpc512x.h"
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci/*
228c2ecf20Sopenharmony_ci * list of supported boards
238c2ecf20Sopenharmony_ci */
248c2ecf20Sopenharmony_cistatic const char * const board[] __initconst = {
258c2ecf20Sopenharmony_ci	"prt,prtlvt",
268c2ecf20Sopenharmony_ci	"fsl,mpc5125ads",
278c2ecf20Sopenharmony_ci	"ifm,ac14xx",
288c2ecf20Sopenharmony_ci	NULL
298c2ecf20Sopenharmony_ci};
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci/*
328c2ecf20Sopenharmony_ci * Called very early, MMU is off, device-tree isn't unflattened
338c2ecf20Sopenharmony_ci */
348c2ecf20Sopenharmony_cistatic int __init mpc512x_generic_probe(void)
358c2ecf20Sopenharmony_ci{
368c2ecf20Sopenharmony_ci	if (!of_device_compatible_match(of_root, board))
378c2ecf20Sopenharmony_ci		return 0;
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci	mpc512x_init_early();
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci	return 1;
428c2ecf20Sopenharmony_ci}
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_cidefine_machine(mpc512x_generic) {
458c2ecf20Sopenharmony_ci	.name			= "MPC512x generic",
468c2ecf20Sopenharmony_ci	.probe			= mpc512x_generic_probe,
478c2ecf20Sopenharmony_ci	.init			= mpc512x_init,
488c2ecf20Sopenharmony_ci	.setup_arch		= mpc512x_setup_arch,
498c2ecf20Sopenharmony_ci	.init_IRQ		= mpc512x_init_IRQ,
508c2ecf20Sopenharmony_ci	.get_irq		= ipic_get_irq,
518c2ecf20Sopenharmony_ci	.calibrate_decr		= generic_calibrate_decr,
528c2ecf20Sopenharmony_ci	.restart		= mpc512x_restart,
538c2ecf20Sopenharmony_ci};
54