Re: [PATCH V3 3/3] mfd: stmpe: Update DT support in stmpe driver
From: Grant Likely <hidden>
Date: 2012-11-26 21:33:59
Also in:
lkml
On Fri, 23 Nov 2012 23:03:47 +0530, Viresh Kumar [off-list ref] wrote:
On 23 November 2012 15:11, Grant Likely [off-list ref] wrote:quoted
On Fri, 23 Nov 2012 00:26:20 +0530, Viresh Kumar [off-list ref] wrote:quoted
quoted
+ - irq-trigger : IRQ trigger to use for the interrupt to the host + - irq-invert-polarity : bool, IRQ line is connected with reversed polarityThis 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. 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.. 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.
Ah, so it is configuring the way the device emits interrupts; not how the interrupt controller processes them. Fair enough. It would actually be good to ask the interrupt controller driver what kind of interrupt signal it expects for a given interrupt line. That should also solve the problem and I think it would be more useful to other devices. Can you investigate whether or not irqd_get_trigger_type() returns the information you need? g.