This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Does anyone know how to implement cascading interrupts using the arm processor and the device tree?

Other Parts Discussed in Thread: TMP112

i am trying to make our gpio expander chip an interrupt-parent. It has a HW IRQ assigned to it on GPIO 30 back on the arm processor chip. A temperature controller chip, RTC and two other expander chips have input lines to the this main expander chip. All devices reside on i2c busses. For now I am just trying to get the temperature controller working with the GPIO Expander. The temperature controller has its interrupt-parent pointing to the gpio expander. The Input line that the temp controller uses is line 15 (16 pin expander).  The temperature controller driver is a module and get loaded after the kernel is launched.  In my kernel messages following a boot I see:

The first problem I am seeing at kernel launch time is a message for my expander device. This takes place before the device is even probed, so I am guessing that its a result of the device tree definintion. The message states:  "irq: no irq domain found for /ocp/i2c@44e0b000/gpio_exp0@20 !"

Here is a snippet of the device tree defining the gpio-expander and the temperature controller:

   
   /* Temp Sensor */
     tmp@48 {
     compatible = "tmp112";
     reg = <0x48>;
 
                                interrupt-parent = <&gpio_exp0>;
                                interrupts = <15 IRQ_TYPE_EDGE_BOTH>;

    };

    
   /* GPIO Expander */
   gpio_exp0: gpio_exp0@20 {
    compatible = "max,max7313";
    reg = <0x20>;

     interrupt-parent = <&gpio0>;
     interrupts = <30 IRQ_TYPE_LEVEL_LOW>; 
 
    gpio-controller;
    #gpio-cells = <2>;
    
    interrupt-controller;
    #interrupt-cells = <2>;

    nr-gpios = <16>;
   };
   

Also by the time I cause the temperature controller to change states on line 15 there is no interrupt handler taking notice of the event.

Any advice for setting up the environment/system using cascading interrupts?

Thanks,

Michael