Re: [PATCH 1/2] regmap: irq: Add support for interrupt type

From: Laxman Dewangan
Date: Thu Feb 14 2013 - 06:02:17 EST


On Wednesday 13 February 2013 07:24 PM, Mark Brown wrote:
* PGP Signed by an unknown key

On Wed, Feb 13, 2013 at 06:44:49PM +0530, Laxman Dewangan wrote:
Most of the MFD module have the GPIO and gpio interrupt is
enabled/disabled through the rising/falling edge type. There
is no specific mask enable/disable registers for GPIO submodules.

Extend the regmap irq to support the irq_set_type() so that
gpio submodule of MFD devices can use the regmap-irq framework
for their interrupt registration.
This commit message needs to be rewritten for comprehensibility, MFD has
nothing to do with this - it's something to do with your particular
hardware that you're trying to support. Describe the hardware feature,
not the subsystem your hardware happens to be used in.

Fine, I will try to write better.


+ switch (type) {
+ case IRQ_TYPE_EDGE_FALLING:
+ d->type_buf[reg] |= irq_data->type_falling_mask;
+ break;
+
+ case IRQ_TYPE_EDGE_RISING:
+ d->type_buf[reg] |= irq_data->type_rising_mask;
+ break;
+
+ case IRQ_TYPE_EDGE_BOTH:
+ d->type_buf[reg] |= (irq_data->type_falling_mask |
+ irq_data->type_rising_mask);
+ break;
This should handle the case where an output type is not supported, for
example if the device only supports falling edge. It'd also seem
sensible to have an explicit value to set for each trigger type rather
than reyling on the device using separate bits for everything - you
might see an encoding like 0 for falling, 1 for rising, 2 for both and 3
for level for example.

is this mean we should have variable like
.supported_iflags which capture what it is supported or not.
And then irq_type_val[MAX_REGMAP_IRQ_TYPE] as array and define the REGMAP_IRQ_TYPE_[FALLING/RISING/BOTH] as index and client can fill this info as per the hardware or

Or we should have separate variable for each type like:
int irq_type_rising_val;
int irq_type_faling_val;
int ire_type_both_val;

along with
int irq_type_supported;
int irq_type_mask_val;






--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/