Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/powerpc/platforms/83xx/asp834x.c
10819 views
1
/*
2
* arch/powerpc/platforms/83xx/asp834x.c
3
*
4
* Analogue & Micro ASP8347 board specific routines
5
* clone of mpc834x_itx
6
*
7
* Copyright 2008 Codehermit
8
*
9
* Maintainer: Bryan O'Donoghue <[email protected]>
10
*
11
* This program is free software; you can redistribute it and/or modify it
12
* under the terms of the GNU General Public License as published by the
13
* Free Software Foundation; either version 2 of the License, or (at your
14
* option) any later version.
15
*/
16
17
#include <linux/pci.h>
18
#include <linux/of_platform.h>
19
20
#include <asm/time.h>
21
#include <asm/ipic.h>
22
#include <asm/udbg.h>
23
24
#include "mpc83xx.h"
25
26
/* ************************************************************************
27
*
28
* Setup the architecture
29
*
30
*/
31
static void __init asp834x_setup_arch(void)
32
{
33
if (ppc_md.progress)
34
ppc_md.progress("asp834x_setup_arch()", 0);
35
36
mpc834x_usb_cfg();
37
}
38
39
static void __init asp834x_init_IRQ(void)
40
{
41
struct device_node *np;
42
43
np = of_find_node_by_type(NULL, "ipic");
44
if (!np)
45
return;
46
47
ipic_init(np, 0);
48
49
of_node_put(np);
50
51
/* Initialize the default interrupt mapping priorities,
52
* in case the boot rom changed something on us.
53
*/
54
ipic_set_default_priority();
55
}
56
57
static struct __initdata of_device_id asp8347_ids[] = {
58
{ .type = "soc", },
59
{ .compatible = "soc", },
60
{ .compatible = "simple-bus", },
61
{ .compatible = "gianfar", },
62
{},
63
};
64
65
static int __init asp8347_declare_of_platform_devices(void)
66
{
67
of_platform_bus_probe(NULL, asp8347_ids, NULL);
68
return 0;
69
}
70
machine_device_initcall(asp834x, asp8347_declare_of_platform_devices);
71
72
/*
73
* Called very early, MMU is off, device-tree isn't unflattened
74
*/
75
static int __init asp834x_probe(void)
76
{
77
unsigned long root = of_get_flat_dt_root();
78
return of_flat_dt_is_compatible(root, "analogue-and-micro,asp8347e");
79
}
80
81
define_machine(asp834x) {
82
.name = "ASP8347E",
83
.probe = asp834x_probe,
84
.setup_arch = asp834x_setup_arch,
85
.init_IRQ = asp834x_init_IRQ,
86
.get_irq = ipic_get_irq,
87
.restart = mpc83xx_restart,
88
.time_init = mpc83xx_time_init,
89
.calibrate_decr = generic_calibrate_decr,
90
.progress = udbg_progress,
91
};
92
93