162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * arch/powerpc/platforms/83xx/mpc830x_rdb.c
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Description: MPC830x RDB board specific routines.
662306a36Sopenharmony_ci * This file is based on mpc831x_rdb.c
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci * Copyright (C) Freescale Semiconductor, Inc. 2009. All rights reserved.
962306a36Sopenharmony_ci * Copyright (C) 2010. Ilya Yanok, Emcraft Systems, yanok@emcraft.com
1062306a36Sopenharmony_ci */
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#include <linux/pci.h>
1362306a36Sopenharmony_ci#include <linux/of_platform.h>
1462306a36Sopenharmony_ci#include <asm/time.h>
1562306a36Sopenharmony_ci#include <asm/ipic.h>
1662306a36Sopenharmony_ci#include <asm/udbg.h>
1762306a36Sopenharmony_ci#include <sysdev/fsl_pci.h>
1862306a36Sopenharmony_ci#include <sysdev/fsl_soc.h>
1962306a36Sopenharmony_ci#include "mpc83xx.h"
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci/*
2262306a36Sopenharmony_ci * Setup the architecture
2362306a36Sopenharmony_ci */
2462306a36Sopenharmony_cistatic void __init mpc830x_rdb_setup_arch(void)
2562306a36Sopenharmony_ci{
2662306a36Sopenharmony_ci	mpc83xx_setup_arch();
2762306a36Sopenharmony_ci	mpc831x_usb_cfg();
2862306a36Sopenharmony_ci}
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_cistatic const char *board[] __initdata = {
3162306a36Sopenharmony_ci	"MPC8308RDB",
3262306a36Sopenharmony_ci	"fsl,mpc8308rdb",
3362306a36Sopenharmony_ci	"denx,mpc8308_p1m",
3462306a36Sopenharmony_ci	NULL
3562306a36Sopenharmony_ci};
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci/*
3862306a36Sopenharmony_ci * Called very early, MMU is off, device-tree isn't unflattened
3962306a36Sopenharmony_ci */
4062306a36Sopenharmony_cistatic int __init mpc830x_rdb_probe(void)
4162306a36Sopenharmony_ci{
4262306a36Sopenharmony_ci	return of_device_compatible_match(of_root, board);
4362306a36Sopenharmony_ci}
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_cimachine_device_initcall(mpc830x_rdb, mpc83xx_declare_of_platform_devices);
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_cidefine_machine(mpc830x_rdb) {
4862306a36Sopenharmony_ci	.name			= "MPC830x RDB",
4962306a36Sopenharmony_ci	.probe			= mpc830x_rdb_probe,
5062306a36Sopenharmony_ci	.setup_arch		= mpc830x_rdb_setup_arch,
5162306a36Sopenharmony_ci	.discover_phbs		= mpc83xx_setup_pci,
5262306a36Sopenharmony_ci	.init_IRQ		= mpc83xx_ipic_init_IRQ,
5362306a36Sopenharmony_ci	.get_irq		= ipic_get_irq,
5462306a36Sopenharmony_ci	.restart		= mpc83xx_restart,
5562306a36Sopenharmony_ci	.time_init		= mpc83xx_time_init,
5662306a36Sopenharmony_ci	.progress		= udbg_progress,
5762306a36Sopenharmony_ci};
58