mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2025-08-24 15:31:22 +01:00

Now that driver lifecycle is managed from within the SBI irqchip core, platforms need only to initialize the driver once during cold init. Remove the remaining platform hooks that are no longer used. Signed-off-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Anup Patel <anup@brainfault.org>
53 lines
1.0 KiB
C
53 lines
1.0 KiB
C
/*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*
|
|
* Copyright (c) 2021 Western Digital Corporation or its affiliates.
|
|
* Copyright (c) 2022 Ventana Micro Systems Inc.
|
|
*
|
|
* Authors:
|
|
* Anup Patel <anup.patel@wdc.com>
|
|
*/
|
|
|
|
#include <libfdt.h>
|
|
#include <sbi/riscv_asm.h>
|
|
#include <sbi/sbi_error.h>
|
|
#include <sbi/sbi_heap.h>
|
|
#include <sbi_utils/fdt/fdt_helper.h>
|
|
#include <sbi_utils/irqchip/fdt_irqchip.h>
|
|
#include <sbi_utils/irqchip/aplic.h>
|
|
|
|
static int irqchip_aplic_cold_init(const void *fdt, int nodeoff,
|
|
const struct fdt_match *match)
|
|
{
|
|
int rc;
|
|
struct aplic_data *pd;
|
|
|
|
pd = sbi_zalloc(sizeof(*pd));
|
|
if (!pd)
|
|
return SBI_ENOMEM;
|
|
|
|
rc = fdt_parse_aplic_node(fdt, nodeoff, pd);
|
|
if (rc)
|
|
goto fail_free_data;
|
|
|
|
rc = aplic_cold_irqchip_init(pd);
|
|
if (rc)
|
|
goto fail_free_data;
|
|
|
|
return 0;
|
|
|
|
fail_free_data:
|
|
sbi_free(pd);
|
|
return rc;
|
|
}
|
|
|
|
static const struct fdt_match irqchip_aplic_match[] = {
|
|
{ .compatible = "riscv,aplic" },
|
|
{ },
|
|
};
|
|
|
|
struct fdt_irqchip fdt_irqchip_aplic = {
|
|
.match_table = irqchip_aplic_match,
|
|
.cold_init = irqchip_aplic_cold_init,
|
|
};
|