Subject: [PATCH 11/12] mfd: twl4030-irq: Return twl6030_mmc_card_detect IRQ for board setup

From: [email-masked] (Rajendra Nayak)
Date: Mon, 05 Mar 2012 13:49:45 +0530

On Friday 02 March 2012 11:45 PM, Felipe Balbi wrote:
> Hi,
>
> On Fri, Mar 02, 2012 at 05:50:23PM +0100, Benoit Cousson wrote:
>> Card detect IRQ from the TWL6030 used to be provided to the MMC
>> controller code using a statically allocated IRQ scheme:
>>
>>    card_detect_irq = TWL6030_IRQ_BASE + MMCDETECT_INTR_OFFSET;
>>
>> This is no longer valid in a SPARSE_IRQ context since there is no more
>> pre-defined TWL6030_IRQ_BASE.
>>
>> Return the proper card detect IRQ value in the twl6030_mmc_card_detect_config
>> that will be called from the MMC controller.
>>
>> Signed-off-by: Benoit Cousson<[email-masked]>
>> Cc: Felipe Balbi<[email-masked]>
>> Cc: Tony Lindgren<[email-masked]>
>> Cc: Rajendra Nayak<[email-masked]>
>
> Reviewed-by: Felipe Balbi<[email-masked]>
>
>> ---
>>   drivers/mfd/twl6030-irq.c |    3 ++-
>>   1 files changed, 2 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/mfd/twl6030-irq.c b/drivers/mfd/twl6030-irq.c
>> index a1c7183..4a63de2 100644
>> --- a/drivers/mfd/twl6030-irq.c
>> +++ b/drivers/mfd/twl6030-irq.c
>> @@ -308,7 +308,8 @@ int twl6030_mmc_card_detect_config(void)
>>   									ret);
>>   		return ret;
>>   	}
>> -	return 0;
>> +
>> +	return twl6030_irq_base + MMCDETECT_INTR_OFFSET;
>>   }
>>   EXPORT_SYMBOL(twl6030_mmc_card_detect_config);
>
> At some point this twl6030_mmc_card_detect_config() needs to vanish in
> favor of a better mechanism. Maybe passing the GPIO number an requiring
> the driver to request the GPIO, set its direction and use it as IRQ
> line.
>
> the only problem would arise if we end up hooking the Card Detect pin to
> a real IRQ line, but then we can use a flag to differentiate.

Shouldn't this be hidden from the driver completely if the card detect
pin is a GPIO or connected to a real IRQ line? And the board/DT handle 
this instead of the driver knowing when to do a gpio_to_irq()?
But I see thats not the case with most mmc drivers, not just OMAP, I
wonder why.