mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-31 22:23:05 +00:00

Add support for the Andes hart-level interrupt controller. This controller provides interrupt mask/unmask functions to access the custom register (SLIE) where the non-standard S-mode local interrupt enable bits are located. The base of custom interrupt number is set to 256. To share the riscv_intc_domain_map() with the generic RISC-V INTC and ACPI, add a chip parameter to riscv_intc_init_common(), so it can be passed to the irq_domain_set_info() as a private data. Andes hart-level interrupt controller requires the "andestech,cpu-intc" compatible string to be present in interrupt-controller of cpu node to enable the use of custom local interrupt source. e.g., cpu0: cpu@0 { compatible = "andestech,ax45mp", "riscv"; ... cpu0-intc: interrupt-controller { #interrupt-cells = <0x01>; compatible = "andestech,cpu-intc", "riscv,cpu-intc"; interrupt-controller; }; }; Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Randolph <randolph@andestech.com> Reviewed-by: Anup Patel <anup@brainfault.org> Link: https://lore.kernel.org/r/20240222083946.3977135-4-peterlin@andestech.com
19 lines
446 B
C
19 lines
446 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (C) 2023 Andes Technology Corporation
|
|
*/
|
|
#ifndef __ANDES_IRQ_H
|
|
#define __ANDES_IRQ_H
|
|
|
|
/* Andes PMU irq number */
|
|
#define ANDES_RV_IRQ_PMOVI 18
|
|
#define ANDES_RV_IRQ_LAST ANDES_RV_IRQ_PMOVI
|
|
#define ANDES_SLI_CAUSE_BASE 256
|
|
|
|
/* Andes PMU related registers */
|
|
#define ANDES_CSR_SLIE 0x9c4
|
|
#define ANDES_CSR_SLIP 0x9c5
|
|
#define ANDES_CSR_SCOUNTEROF 0x9d4
|
|
|
|
#endif /* __ANDES_IRQ_H */
|