Path: blob/master/arch/powerpc/platforms/microwatt/setup.c
26481 views
/*1* Microwatt FPGA-based SoC platform setup code.2*3* Copyright 2020 Paul Mackerras ([email protected]), IBM Corp.4*/56#include <linux/types.h>7#include <linux/kernel.h>8#include <linux/stddef.h>9#include <linux/init.h>10#include <linux/of.h>11#include <linux/of_platform.h>1213#include <asm/machdep.h>14#include <asm/time.h>15#include <asm/xics.h>16#include <asm/udbg.h>1718#include "microwatt.h"1920static void __init microwatt_init_IRQ(void)21{22xics_init();23}2425static int __init microwatt_populate(void)26{27return of_platform_default_populate(NULL, NULL, NULL);28}29machine_arch_initcall(microwatt, microwatt_populate);3031static int __init microwatt_probe(void)32{33/* Main reason for having this is to start the other CPU(s) */34if (IS_ENABLED(CONFIG_SMP))35microwatt_init_smp();36return 1;37}3839static void __init microwatt_setup_arch(void)40{41microwatt_rng_init();42}4344static void microwatt_idle(void)45{46if (!prep_irq_for_idle_irqsoff())47return;4849__asm__ __volatile__ ("wait");50}5152define_machine(microwatt) {53.name = "microwatt",54.compatible = "microwatt-soc",55.probe = microwatt_probe,56.init_IRQ = microwatt_init_IRQ,57.setup_arch = microwatt_setup_arch,58.progress = udbg_progress,59.power_save = microwatt_idle,60};616263