ARCv2: IDU-intc: Delete deprecated parameters in Device Trees
No need for specifying a list of interrupts in the declaration of IDU interrupt controller anymore since the kernel can obtain a number of supported interrupts from the build register. Also delete support of the second parameter for devices which are connected to IDU because it is not used anywhere. Signed-off-by: Yuriy Kolerov <yuriy.kolerov@synopsys.com> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
This commit is contained in:
parent
fc73965ed0
commit
ec69b269d8
|
@ -8,15 +8,11 @@ Properties:
|
|||
- compatible: "snps,archs-idu-intc"
|
||||
- interrupt-controller: This is an interrupt controller.
|
||||
- interrupt-parent: <reference to parent core intc>
|
||||
- #interrupt-cells: Must be <2>.
|
||||
- interrupts: <...> specifies the upstream core irqs
|
||||
- #interrupt-cells: Must be <1>.
|
||||
|
||||
First cell specifies the "common" IRQ from peripheral to IDU
|
||||
Second cell specifies the irq distribution mode to cores
|
||||
0=Round Robin; 1=cpu0, 2=cpu1, 4=cpu2, 8=cpu3
|
||||
|
||||
The second cell in interrupts property is deprecated and may be ignored by
|
||||
the kernel.
|
||||
Value of the cell specifies the "common" IRQ from peripheral to IDU. Number N
|
||||
of the particular interrupt line of IDU corresponds to the line N+24 of the
|
||||
core interrupt controller.
|
||||
|
||||
intc accessed via the special ARC AUX register interface, hence "reg" property
|
||||
is not specified.
|
||||
|
@ -32,18 +28,10 @@ Example:
|
|||
compatible = "snps,archs-idu-intc";
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&core_intc>;
|
||||
|
||||
/*
|
||||
* <hwirq distribution>
|
||||
* distribution: 0=RR; 1=cpu0, 2=cpu1, 4=cpu2, 8=cpu3
|
||||
*/
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
/* upstream core irqs: downstream these are "COMMON" irq 0,1.. */
|
||||
interrupts = <24 25 26 27 28 29 30 31>;
|
||||
#interrupt-cells = <1>;
|
||||
};
|
||||
|
||||
some_device: serial@c0fc1000 {
|
||||
interrupt-parent = <&idu_intc>;
|
||||
interrupts = <0 0>; /* upstream idu IRQ #24, Round Robin */
|
||||
interrupts = <0>; /* upstream idu IRQ #24 */
|
||||
};
|
||||
|
|
|
@ -40,18 +40,7 @@
|
|||
compatible = "snps,archs-idu-intc";
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&core_intc>;
|
||||
|
||||
/*
|
||||
* <hwirq distribution>
|
||||
* distribution: 0=RR; 1=cpu0, 2=cpu1, 4=cpu2, 8=cpu3
|
||||
*/
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
/*
|
||||
* upstream irqs to core intc - downstream these are
|
||||
* "COMMON" irq 0,1..
|
||||
*/
|
||||
interrupts = <24 25>;
|
||||
#interrupt-cells = <1>;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -73,12 +62,7 @@
|
|||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
interrupt-parent = <&idu_intc>;
|
||||
|
||||
/*
|
||||
* cmn irq 1 -> cpu irq 25
|
||||
* Distribute to cpu0 only
|
||||
*/
|
||||
interrupts = <1 1>;
|
||||
interrupts = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -119,8 +103,7 @@
|
|||
reg = < 0xe0012000 0x200 >;
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&idu_intc>;
|
||||
interrupts = <0 1>; /* cmn irq 0 -> cpu irq 24
|
||||
distribute to cpu0 only */
|
||||
interrupts = <0>;
|
||||
};
|
||||
|
||||
memory {
|
||||
|
|
|
@ -54,11 +54,7 @@
|
|||
compatible = "snps,archs-idu-intc";
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&core_intc>;
|
||||
/* <hwirq distribution>
|
||||
distribution: 0=RR; 1=cpu0, 2=cpu1, 4=cpu2, 8=cpu3 */
|
||||
#interrupt-cells = <2>;
|
||||
interrupts = <24 25 26 27 28 29 30 31>;
|
||||
|
||||
#interrupt-cells = <1>;
|
||||
};
|
||||
|
||||
uart0: serial@f0000000 {
|
||||
|
@ -66,9 +62,7 @@
|
|||
compatible = "ns16550a";
|
||||
reg = <0xf0000000 0x2000>;
|
||||
interrupt-parent = <&idu_intc>;
|
||||
/* interrupts = <0 1>; DEST=1*/
|
||||
/* interrupts = <0 2>; DEST=2*/
|
||||
interrupts = <0 0>; /* RR*/
|
||||
interrupts = <0>;
|
||||
clock-frequency = <50000000>;
|
||||
baud = <115200>;
|
||||
reg-shift = <2>;
|
||||
|
|
|
@ -46,25 +46,14 @@
|
|||
compatible = "snps,archs-idu-intc";
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&core_intc>;
|
||||
|
||||
/*
|
||||
* <hwirq distribution>
|
||||
* distribution: 0=RR; 1=cpu0, 2=cpu1, 4=cpu2, 8=cpu3
|
||||
*/
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
/*
|
||||
* upstream irqs to core intc - downstream these are
|
||||
* "COMMON" irq 0,1..
|
||||
*/
|
||||
interrupts = <24 25 26 27 28 29 30 31>;
|
||||
#interrupt-cells = <1>;
|
||||
};
|
||||
|
||||
arcuart0: serial@c0fc1000 {
|
||||
compatible = "snps,arc-uart";
|
||||
reg = <0xc0fc1000 0x100>;
|
||||
interrupt-parent = <&idu_intc>;
|
||||
interrupts = <0 0>;
|
||||
interrupts = <0>;
|
||||
clock-frequency = <80000000>;
|
||||
current-speed = <115200>;
|
||||
status = "okay";
|
||||
|
|
|
@ -50,26 +50,14 @@
|
|||
compatible = "snps,archs-idu-intc";
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&core_intc>;
|
||||
|
||||
/*
|
||||
* <hwirq distribution>
|
||||
* distribution: 0=RR; 1=cpu0, 2=cpu1, 4=cpu2, 8=cpu3
|
||||
*/
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
/*
|
||||
* upstream irqs to core intc - downstream these are
|
||||
* "COMMON" irq 0,1..
|
||||
*/
|
||||
interrupts = <24 25 26 27 28 29 30 31>;
|
||||
#interrupt-cells = <1>;
|
||||
};
|
||||
|
||||
uart0: serial@f0000000 {
|
||||
compatible = "ns8250";
|
||||
reg = <0xf0000000 0x2000>;
|
||||
interrupt-parent = <&idu_intc>;
|
||||
interrupts = <0 0>; /* cmn irq 0 -> cpu irq 24
|
||||
RR distribute to all cpus */
|
||||
interrupts = <0>;
|
||||
clock-frequency = <3686400>;
|
||||
baud = <115200>;
|
||||
reg-shift = <2>;
|
||||
|
@ -93,7 +81,7 @@
|
|||
ps2: ps2@f9001000 {
|
||||
compatible = "snps,arc_ps2";
|
||||
reg = <0xf9000400 0x14>;
|
||||
interrupts = <3 0>;
|
||||
interrupts = <3>;
|
||||
interrupt-parent = <&idu_intc>;
|
||||
interrupt-names = "arc_ps2_irq";
|
||||
};
|
||||
|
@ -102,7 +90,7 @@
|
|||
compatible = "ezchip,nps-mgt-enet";
|
||||
reg = <0xf0003000 0x44>;
|
||||
interrupt-parent = <&idu_intc>;
|
||||
interrupts = <1 2>;
|
||||
interrupts = <1>;
|
||||
};
|
||||
|
||||
arcpct0: pct {
|
||||
|
|
|
@ -41,14 +41,7 @@
|
|||
compatible = "snps,archs-idu-intc";
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&core_intc>;
|
||||
|
||||
/*
|
||||
* <hwirq distribution>
|
||||
* distribution: 0=RR; 1=cpu0, 2=cpu1, 4=cpu2, 8=cpu3
|
||||
*/
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
interrupts = <24 25 26 27>;
|
||||
#interrupt-cells = <1>;
|
||||
};
|
||||
|
||||
debug_uart: dw-apb-uart@0x5000 {
|
||||
|
@ -56,7 +49,7 @@
|
|||
reg = <0x5000 0x100>;
|
||||
clock-frequency = <2403200>;
|
||||
interrupt-parent = <&idu_intc>;
|
||||
interrupts = <2 0>;
|
||||
interrupts = <2>;
|
||||
baud = <115200>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
|
@ -70,7 +63,7 @@
|
|||
reg = < 0xe0012000 0x200 >;
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&idu_intc>;
|
||||
interrupts = < 0 0 >;
|
||||
interrupts = <0>;
|
||||
};
|
||||
|
||||
memory {
|
||||
|
|
|
@ -255,23 +255,8 @@ static int idu_irq_map(struct irq_domain *d, unsigned int virq, irq_hw_number_t
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int idu_irq_xlate(struct irq_domain *d, struct device_node *n,
|
||||
const u32 *intspec, unsigned int intsize,
|
||||
irq_hw_number_t *out_hwirq, unsigned int *out_type)
|
||||
{
|
||||
/*
|
||||
* Ignore value of interrupt distribution mode for common interrupts in
|
||||
* IDU which resides in intspec[1] since setting an affinity using value
|
||||
* from Device Tree is deprecated in ARC.
|
||||
*/
|
||||
*out_hwirq = intspec[0];
|
||||
*out_type = IRQ_TYPE_NONE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct irq_domain_ops idu_irq_ops = {
|
||||
.xlate = idu_irq_xlate,
|
||||
.xlate = irq_domain_xlate_onecell,
|
||||
.map = idu_irq_map,
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue