/* * ARC FPGA Platform support code * * Copyright (C) 2012 Synopsys, Inc. (www.synopsys.com) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #include #include #include #include #include #include #include #include #include #include #include #include #include static void __init plat_fpga_early_init(void) { pr_info("[plat-arcfpga]: registering early dev resources\n"); #ifdef CONFIG_ISS_SMP_EXTN iss_model_init_early_smp(); #endif } static void __init plat_fpga_populate_dev(void) { /* * Traverses flattened DeviceTree - registering platform devices * (if any) complete with their resources */ of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); } /*----------------------- Machine Descriptions ------------------------------ * * Machine description is simply a set of platform/board specific callbacks * This is not directly related to DeviceTree based dynamic device creation, * however as part of early device tree scan, we also select the right * callback set, by matching the DT compatible name. */ static const char *aa4_compat[] __initconst = { "snps,arc-angel4", NULL, }; MACHINE_START(ANGEL4, "angel4") .dt_compat = aa4_compat, .init_early = plat_fpga_early_init, .init_machine = plat_fpga_populate_dev, #ifdef CONFIG_ISS_SMP_EXTN .init_smp = iss_model_init_smp, #endif MACHINE_END static const char *ml509_compat[] __initconst = { "snps,arc-ml509", NULL, }; MACHINE_START(ML509, "ml509") .dt_compat = ml509_compat, .init_early = plat_fpga_early_init, .init_machine = plat_fpga_populate_dev, #ifdef CONFIG_SMP .init_smp = iss_model_init_smp, #endif MACHINE_END static const char *nsimosci_compat[] __initconst = { "snps,nsimosci", NULL, }; MACHINE_START(NSIMOSCI, "nsimosci") .dt_compat = nsimosci_compat, .init_early = NULL, .init_machine = plat_fpga_populate_dev, MACHINE_END