Back to home page

OSCL-LXR

 
 

    


0001 /*
0002  * Microwatt FPGA-based SoC platform setup code.
0003  *
0004  * Copyright 2020 Paul Mackerras (paulus@ozlabs.org), IBM Corp.
0005  */
0006 
0007 #include <linux/types.h>
0008 #include <linux/kernel.h>
0009 #include <linux/stddef.h>
0010 #include <linux/init.h>
0011 #include <linux/of.h>
0012 #include <linux/of_platform.h>
0013 
0014 #include <asm/machdep.h>
0015 #include <asm/time.h>
0016 #include <asm/xics.h>
0017 #include <asm/udbg.h>
0018 
0019 #include "microwatt.h"
0020 
0021 static void __init microwatt_init_IRQ(void)
0022 {
0023     xics_init();
0024 }
0025 
0026 static int __init microwatt_probe(void)
0027 {
0028     return of_machine_is_compatible("microwatt-soc");
0029 }
0030 
0031 static int __init microwatt_populate(void)
0032 {
0033     return of_platform_default_populate(NULL, NULL, NULL);
0034 }
0035 machine_arch_initcall(microwatt, microwatt_populate);
0036 
0037 static void __init microwatt_setup_arch(void)
0038 {
0039     microwatt_rng_init();
0040 }
0041 
0042 define_machine(microwatt) {
0043     .name           = "microwatt",
0044     .probe          = microwatt_probe,
0045     .init_IRQ       = microwatt_init_IRQ,
0046     .setup_arch     = microwatt_setup_arch,
0047     .progress       = udbg_progress,
0048     .calibrate_decr     = generic_calibrate_decr,
0049 };