162306a36Sopenharmony_ci/* 262306a36Sopenharmony_ci * Microwatt FPGA-based SoC platform setup code. 362306a36Sopenharmony_ci * 462306a36Sopenharmony_ci * Copyright 2020 Paul Mackerras (paulus@ozlabs.org), IBM Corp. 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#include <linux/types.h> 862306a36Sopenharmony_ci#include <linux/kernel.h> 962306a36Sopenharmony_ci#include <linux/stddef.h> 1062306a36Sopenharmony_ci#include <linux/init.h> 1162306a36Sopenharmony_ci#include <linux/of.h> 1262306a36Sopenharmony_ci#include <linux/of_platform.h> 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#include <asm/machdep.h> 1562306a36Sopenharmony_ci#include <asm/time.h> 1662306a36Sopenharmony_ci#include <asm/xics.h> 1762306a36Sopenharmony_ci#include <asm/udbg.h> 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#include "microwatt.h" 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_cistatic void __init microwatt_init_IRQ(void) 2262306a36Sopenharmony_ci{ 2362306a36Sopenharmony_ci xics_init(); 2462306a36Sopenharmony_ci} 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_cistatic int __init microwatt_populate(void) 2762306a36Sopenharmony_ci{ 2862306a36Sopenharmony_ci return of_platform_default_populate(NULL, NULL, NULL); 2962306a36Sopenharmony_ci} 3062306a36Sopenharmony_cimachine_arch_initcall(microwatt, microwatt_populate); 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_cistatic void __init microwatt_setup_arch(void) 3362306a36Sopenharmony_ci{ 3462306a36Sopenharmony_ci microwatt_rng_init(); 3562306a36Sopenharmony_ci} 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_cidefine_machine(microwatt) { 3862306a36Sopenharmony_ci .name = "microwatt", 3962306a36Sopenharmony_ci .compatible = "microwatt-soc", 4062306a36Sopenharmony_ci .init_IRQ = microwatt_init_IRQ, 4162306a36Sopenharmony_ci .setup_arch = microwatt_setup_arch, 4262306a36Sopenharmony_ci .progress = udbg_progress, 4362306a36Sopenharmony_ci}; 44