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