8156b80fd4
Add the required updates to describe the use of dw-apb-ictl as a primary interrupt controller. Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com> [maz: commit message] Signed-off-by: Marc Zyngier <maz@kernel.org> Reviewed-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20200924071754.4509-5-thunder.leizhen@huawei.com
44 lines
1.6 KiB
Plaintext
44 lines
1.6 KiB
Plaintext
Synopsys DesignWare APB interrupt controller (dw_apb_ictl)
|
|
|
|
Synopsys DesignWare provides interrupt controller IP for APB known as
|
|
dw_apb_ictl. The IP is used as secondary interrupt controller in some SoCs with
|
|
APB bus, e.g. Marvell Armada 1500. It can also be used as primary interrupt
|
|
controller in some SoCs, e.g. Hisilicon SD5203.
|
|
|
|
Required properties:
|
|
- compatible: shall be "snps,dw-apb-ictl"
|
|
- reg: physical base address of the controller and length of memory mapped
|
|
region starting with ENABLE_LOW register
|
|
- interrupt-controller: identifies the node as an interrupt controller
|
|
- #interrupt-cells: number of cells to encode an interrupt-specifier, shall be 1
|
|
|
|
Additional required property when it's used as secondary interrupt controller:
|
|
- interrupts: interrupt reference to primary interrupt controller
|
|
|
|
The interrupt sources map to the corresponding bits in the interrupt
|
|
registers, i.e.
|
|
- 0 maps to bit 0 of low interrupts,
|
|
- 1 maps to bit 1 of low interrupts,
|
|
- 32 maps to bit 0 of high interrupts,
|
|
- 33 maps to bit 1 of high interrupts,
|
|
- (optional) fast interrupts start at 64.
|
|
|
|
Example:
|
|
/* dw_apb_ictl is used as secondary interrupt controller */
|
|
aic: interrupt-controller@3000 {
|
|
compatible = "snps,dw-apb-ictl";
|
|
reg = <0x3000 0xc00>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
interrupt-parent = <&gic>;
|
|
interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
|
|
};
|
|
|
|
/* dw_apb_ictl is used as primary interrupt controller */
|
|
vic: interrupt-controller@10130000 {
|
|
compatible = "snps,dw-apb-ictl";
|
|
reg = <0x10130000 0x1000>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
};
|