162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Ebony board specific routines
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Matt Porter <mporter@kernel.crashing.org>
662306a36Sopenharmony_ci * Copyright 2002-2005 MontaVista Software Inc.
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci * Eugene Surovegin <eugene.surovegin@zultys.com> or <ebs@ebshome.net>
962306a36Sopenharmony_ci * Copyright (c) 2003-2005 Zultys Technologies
1062306a36Sopenharmony_ci *
1162306a36Sopenharmony_ci * Rewritten and ported to the merged powerpc tree:
1262306a36Sopenharmony_ci * Copyright 2007 David Gibson <dwg@au1.ibm.com>, IBM Corporation.
1362306a36Sopenharmony_ci */
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#include <linux/init.h>
1662306a36Sopenharmony_ci#include <linux/of_platform.h>
1762306a36Sopenharmony_ci#include <linux/rtc.h>
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci#include <asm/machdep.h>
2062306a36Sopenharmony_ci#include <asm/prom.h>
2162306a36Sopenharmony_ci#include <asm/udbg.h>
2262306a36Sopenharmony_ci#include <asm/time.h>
2362306a36Sopenharmony_ci#include <asm/uic.h>
2462306a36Sopenharmony_ci#include <asm/pci-bridge.h>
2562306a36Sopenharmony_ci#include <asm/ppc4xx.h>
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_cistatic const struct of_device_id ebony_of_bus[] __initconst = {
2862306a36Sopenharmony_ci	{ .compatible = "ibm,plb4", },
2962306a36Sopenharmony_ci	{ .compatible = "ibm,opb", },
3062306a36Sopenharmony_ci	{ .compatible = "ibm,ebc", },
3162306a36Sopenharmony_ci	{},
3262306a36Sopenharmony_ci};
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_cistatic int __init ebony_device_probe(void)
3562306a36Sopenharmony_ci{
3662306a36Sopenharmony_ci	of_platform_bus_probe(NULL, ebony_of_bus, NULL);
3762306a36Sopenharmony_ci	of_instantiate_rtc();
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci	return 0;
4062306a36Sopenharmony_ci}
4162306a36Sopenharmony_cimachine_device_initcall(ebony, ebony_device_probe);
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci/*
4462306a36Sopenharmony_ci * Called very early, MMU is off, device-tree isn't unflattened
4562306a36Sopenharmony_ci */
4662306a36Sopenharmony_cistatic int __init ebony_probe(void)
4762306a36Sopenharmony_ci{
4862306a36Sopenharmony_ci	pci_set_flags(PCI_REASSIGN_ALL_RSRC);
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci	return 1;
5162306a36Sopenharmony_ci}
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_cidefine_machine(ebony) {
5462306a36Sopenharmony_ci	.name			= "Ebony",
5562306a36Sopenharmony_ci	.compatible		= "ibm,ebony",
5662306a36Sopenharmony_ci	.probe			= ebony_probe,
5762306a36Sopenharmony_ci	.progress		= udbg_progress,
5862306a36Sopenharmony_ci	.init_IRQ		= uic_init_tree,
5962306a36Sopenharmony_ci	.get_irq		= uic_get_irq,
6062306a36Sopenharmony_ci	.restart		= ppc4xx_reset_system,
6162306a36Sopenharmony_ci};
62