pinctrl: at91: enhance (debugfs) at91_gpio_dbg_show
[cascardo/linux.git] / arch / arc / plat-arcfpga / platform.c
1 /*
2  * ARC FPGA Platform support code
3  *
4  * Copyright (C) 2012 Synopsys, Inc. (www.synopsys.com)
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10
11 #include <linux/types.h>
12 #include <linux/init.h>
13 #include <linux/device.h>
14 #include <linux/platform_device.h>
15 #include <linux/io.h>
16 #include <linux/console.h>
17 #include <linux/of_platform.h>
18 #include <asm/setup.h>
19 #include <asm/clk.h>
20 #include <asm/mach_desc.h>
21 #include <plat/memmap.h>
22 #include <plat/smp.h>
23 #include <plat/irq.h>
24
25 static void __init plat_fpga_early_init(void)
26 {
27         pr_info("[plat-arcfpga]: registering early dev resources\n");
28
29 #ifdef CONFIG_ISS_SMP_EXTN
30         iss_model_init_early_smp();
31 #endif
32 }
33
34 static void __init plat_fpga_populate_dev(void)
35 {
36         /*
37          * Traverses flattened DeviceTree - registering platform devices
38          * (if any) complete with their resources
39          */
40         of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
41 }
42
43 /*----------------------- Machine Descriptions ------------------------------
44  *
45  * Machine description is simply a set of platform/board specific callbacks
46  * This is not directly related to DeviceTree based dynamic device creation,
47  * however as part of early device tree scan, we also select the right
48  * callback set, by matching the DT compatible name.
49  */
50
51 static const char *aa4_compat[] __initconst = {
52         "snps,arc-angel4",
53         NULL,
54 };
55
56 MACHINE_START(ANGEL4, "angel4")
57         .dt_compat      = aa4_compat,
58         .init_early     = plat_fpga_early_init,
59         .init_machine   = plat_fpga_populate_dev,
60 #ifdef CONFIG_ISS_SMP_EXTN
61         .init_smp       = iss_model_init_smp,
62 #endif
63 MACHINE_END
64
65 static const char *ml509_compat[] __initconst = {
66         "snps,arc-ml509",
67         NULL,
68 };
69
70 MACHINE_START(ML509, "ml509")
71         .dt_compat      = ml509_compat,
72         .init_early     = plat_fpga_early_init,
73         .init_machine   = plat_fpga_populate_dev,
74 #ifdef CONFIG_SMP
75         .init_smp       = iss_model_init_smp,
76 #endif
77 MACHINE_END
78
79 static const char *nsimosci_compat[] __initconst = {
80         "snps,nsimosci",
81         NULL,
82 };
83
84 MACHINE_START(NSIMOSCI, "nsimosci")
85         .dt_compat      = nsimosci_compat,
86         .init_early     = NULL,
87         .init_machine   = plat_fpga_populate_dev,
88 MACHINE_END