On Fri, 23 Nov 2012, Viresh Kumar wrote: > On 23 November 2012 15:11, Grant Likely <grant.lik...@secretlab.ca> wrote: > > On Fri, 23 Nov 2012 00:26:20 +0530, Viresh Kumar <viresh.ku...@linaro.org> > > wrote: > > >> + - irq-trigger : IRQ trigger to use for the > >> interrupt to the host > >> + - irq-invert-polarity : bool, IRQ line is connected with > >> reversed polarity > > > > This looks odd. Normally the interrupt polarity should be encoded in the irq > > specifier flags field. > > Hi Grant and Lee Jones, > > This looks odd because stmpe is odd, i am taking the discussion held > with Lee jones to this thread.
STMPE isn't odd or special in any way. :) > So, how interrupt stuff works currently in DT.. > We have a interrupt controller IC: > > ic: interrupt-controller@40008000 { > compatible = "foo"; > interrupt-controller; > #interrupt-cells = <2>; > ... > }; > > And we have a user of this IC: > > foo-peripheral@40048000 { > compatible = "foo-peripheral"; > interrupt-parent = <&ic>; > interrupts = <39 4>; > }; > > Here first field of "interrupts" gives interrupt line number and the second > one > gives polarity, interrupt type etc.. So far so good. > All is good till now. Now, every interrupt controller supports the first > field, but the second one depends on its capabilities. An interrupt controller > might not have registers to configure interrupt polarity, type, etc of > the interrupt > it will service and so the second field wouldn't be available for them. > > For now just think stmpe is not a MFD and not a interrupt controller > either. It is > just a simple device, dev-foo. > > It will declare values of its interrupts field based on the type of > interrupt controller > that will service its interrupt and that can be anything like VIC/GIC/GPIO > controller. > > Obviously nobody else than the parent IC driver can parse interrupts field > of dev-foo, because only that driver understands the real meaning of > these fields. > > Now, stmpe has a special property. It can decide the way its output > interrupt line > will work. i.e. its polarity and interrupt type - edle/level, etc.. > This is not commonly > seen in any peripheral. Now my original bindings and the real question here is > about passing this information to stmpe driver. > > I can't pass it in interrupts field of stmpe node, as that field > belongs to parent > interrupt controller of stmpe. > > I can't pass that from child nodes of stmpe, as we are programming the > interrupt > coming out of stmpe and not the interrupt coming out of stmpe-gpio or > stmpe-keypad. > > And that's why i added these bindings. Please suggest me if i am still missing > something. Look into .xlate functions. -- Lee Jones Linaro ST-Ericsson Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/