File Index
Files and directories
Sign in
FILE

setup.c

File preview with syntax highlighting.

linux-6.19.14/arch/powerpc/platforms/microwatt/setup.c C
 1/*
 2 * Microwatt FPGA-based SoC platform setup code.
 3 *
 4 * Copyright 2020 Paul Mackerras (paulus@ozlabs.org), IBM Corp.
 5 */
 6
 7#include <linux/types.h>
 8#include <linux/kernel.h>
 9#include <linux/stddef.h>
10#include <linux/init.h>
11#include <linux/of.h>
12#include <linux/of_platform.h>
13
14#include <asm/machdep.h>
15#include <asm/time.h>
16#include <asm/xics.h>
17#include <asm/udbg.h>
18
19#include "microwatt.h"
20
21static void __init microwatt_init_IRQ(void)
22{
23	xics_init();
24}
25
26static int __init microwatt_populate(void)
27{
28	return of_platform_default_populate(NULL, NULL, NULL);
29}
30machine_arch_initcall(microwatt, microwatt_populate);
31
32static int __init microwatt_probe(void)
33{
34	/* Main reason for having this is to start the other CPU(s) */
35	if (IS_ENABLED(CONFIG_SMP))
36		microwatt_init_smp();
37	return 1;
38}
39
40static void __init microwatt_setup_arch(void)
41{
42	microwatt_rng_init();
43}
44
45static void microwatt_idle(void)
46{
47	if (!prep_irq_for_idle_irqsoff())
48		return;
49
50	__asm__ __volatile__ ("wait");
51}
52
53define_machine(microwatt) {
54	.name			= "microwatt",
55	.compatible		= "microwatt-soc",
56	.probe			= microwatt_probe,
57	.init_IRQ		= microwatt_init_IRQ,
58	.setup_arch		= microwatt_setup_arch,
59	.progress		= udbg_progress,
60	.power_save		= microwatt_idle,
61};
~/ Read-only file preview.