Re: [PATCH V4 Resend 2/3] mfd: stmpe: Remove irq_trigger from platform data
From: Lee Jones <hidden>
Date: 2012-11-29 09:34:36
Also in:
lkml
On Thu, 29 Nov 2012, Viresh Kumar wrote:
STMPE can confige
configure?
the way the device emits interrupts and till now this
until?
quoted hunk ↗ jump to hunk
information is passed as part of platform data. It would actually be good to ask the interrupt controller driver what kind of interrupt signal it expects for a given interrupt line. We can get the irq type by calling: irqd_get_trigger_type() routine. So, now we don't need to pass it via platform data. This is earlier discussed here: https://lkml.org/lkml/2012/11/26/711 Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> --- @Linus/Shiraz: Can you please test this patch? You don't really need to test 1/3 and 3/3, but would be good if you do that too.. This is actually V1 of this patch. arch/arm/mach-ux500/board-mop500-stuib.c | 1 - drivers/mfd/stmpe.c | 7 ++++--- include/linux/mfd/stmpe.h | 2 -- 3 files changed, 4 insertions(+), 6 deletions(-)diff --git a/arch/arm/mach-ux500/board-mop500-stuib.c b/arch/arm/mach-ux500/board-mop500-stuib.c index 564f57d..0efcf97 100644 --- a/arch/arm/mach-ux500/board-mop500-stuib.c +++ b/arch/arm/mach-ux500/board-mop500-stuib.c@@ -57,7 +57,6 @@ static struct stmpe_keypad_platform_data stmpe1601_keypad_data = { static struct stmpe_platform_data stmpe1601_data = { .id = 1, .blocks = STMPE_BLOCK_KEYPAD, - .irq_trigger = IRQF_TRIGGER_FALLING, .irq_base = MOP500_STMPE1601_IRQ(0), .keypad = &stmpe1601_keypad_data, .autosleep = true,diff --git a/drivers/mfd/stmpe.c b/drivers/mfd/stmpe.c index 34408b4..10819e6 100644 --- a/drivers/mfd/stmpe.c +++ b/drivers/mfd/stmpe.c@@ -914,7 +914,6 @@ static int __devinit stmpe_irq_init(struct stmpe *stmpe, static int __devinit stmpe_chip_init(struct stmpe *stmpe) { - unsigned int irq_trigger = stmpe->pdata->irq_trigger; int autosleep_timeout = stmpe->pdata->autosleep_timeout; struct stmpe_variant_info *variant = stmpe->variant; u8 icr = 0;@@ -941,6 +940,9 @@ static int __devinit stmpe_chip_init(struct stmpe *stmpe) return ret; if (stmpe->irq >= 0) { + unsigned int irq_trigger = + irqd_get_trigger_type(irq_get_irq_data(stmpe->irq)); + if (id == STMPE801_ID) icr = STMPE801_REG_SYS_CTRL_INT_EN; else@@ -1118,8 +1120,7 @@ int __devinit stmpe_probe(struct stmpe_client_info *ci, int partnum) return ret; ret = devm_request_threaded_irq(ci->dev, stmpe->irq, NULL, - stmpe_irq, pdata->irq_trigger | IRQF_ONESHOT, - "stmpe", stmpe); + stmpe_irq, IRQF_ONESHOT, "stmpe", stmpe);
Forgive my ignorance, but you're no longer passing irq_trigger. Is this intentional? If so, why was it needed before and not now? -- Lee Jones Linaro ST-Ericsson Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog _______________________________________________ devicetree-discuss mailing list devicetree-discuss@lists.ozlabs.org https://lists.ozlabs.org/listinfo/devicetree-discuss