Re: Using irq-crossbar.c

From: Mason
Date: Fri Jun 10 2016 - 15:36:59 EST


On 10/06/2016 18:05, Marc Zyngier wrote:

> On 10/06/16 16:37, Sebastian Frias wrote:
>
>> here's the diff on our DT:
>>
>> --- tango4-common.dtsi 2016-06-10 16:23:08.244246017 +0200
>> +++ tangox_irqv2-common.dtsi 2016-06-10 16:24:01.212588737 +0200
>> @@ -47,7 +47,7 @@
>>
>> soc {
>> compatible = "simple-bus";
>> - interrupt-parent = <&irq0>;
>> + interrupt-parent = <&irq_mux>;
>> #address-cells = <1>;
>> #size-cells = <1>;
>> ranges;
>> @@ -75,7 +75,7 @@
>> uart: serial@10700 {
>> compatible = "ralink,rt2880-uart";
>> reg = <0x10700 0x30>;
>> - interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
>> + interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
>> clock-frequency = <7372800>;
>> reg-shift = <2>;
>> };
>> @@ -83,10 +83,11 @@
>> eth0: ethernet@26000 {
>> compatible = "sigma,smp8734-ethernet";
>> reg = <0x26000 0x800>;
>> - interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
>> + interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
>> clocks = <&clkgen 1>;
>> };
>>
>> +#if 0
>> intc: interrupt-controller@6e000 {
>> compatible = "sigma,smp8642-intc";
>> reg = <0x6e000 0x400>;
>> @@ -117,5 +118,16 @@
>> interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
>> };
>> };
>> +#else
>> + irq_mux: irq_mux@6f800 {
>> + compatible = "sigma,smp-irq-mux";
>> + reg = <0x6f800 0x400>;
>> + interrupt-controller;
>> + interrupt-parent = <&gic>;
>> + irqs-reserved = <2 3 4 125 126 127>;
>> + };
>
> Where is the GIC? Where is the #interrupt-cells property? What is the
> interrupt parent for the GIC itself? (and I'm tempted to add "What is
> your name? What is you quest?", but that's because it is Friday and I
> feel like I need a beer...).

Beer and cheese? Beurk! ;-)

I think Sebastian is even more baffled by the DT mess
(sorry, intricacies) than I am.

The base file he was referring to is:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/tango4-common.dtsi

Regards.