[PATCH v3] USB: PHY: Palmas USB Transceiver Driver

Laxman Dewangan ldewangan at nvidia.com
Tue Mar 26 22:28:49 EST 2013


On Tuesday 26 March 2013 03:21 PM, Graeme Gregory wrote:
> On 26/03/13 09:34, Laxman Dewangan wrote:
>>>>
>>>> Kishon,
>>>> I think it is very much possible. You can pass the interrupt throough
>>>> IRQ_RESOURCE and populate it from DT. If you provide proper interrupt
>>>> parent and irq number then irq framework take care of every thing.
>>>> already tested this with RTC interrupt of plama and it worked very
>>>> well.
>>>>
>>> If we are tightly coupling as above then using platform_irq is an extra
>>> inefficiency. You both have to populate this then parse it afterwards.
>>> Why not just use the regmap helper? Ill admit this code is like this as
>>> there was a period where platform irqs in DT just was not working right!
>>>
>>> We should really agree now if we are going for loose or tight coupling
>>> now rather than keep switching?
>> Here we are hardcoding for PALMAS_ID_OTG_IRQ and so on. If we take
>> data from platform then it need not and it will be completely
>> independent of palma atleast on this front.
>> We need to populate just as:
>> palmas: palmas {
>> :::::::
>>      palams_usb_phy {
>>          compatile = ...
>>          interrupt-parent = <& palmas>;
>>          interrupt = < 10, 0,
>>                                  21, 0,
>>                              22, 0,
>>                              23, 0>;
>> }
>>
>>
>> and in code, we just need to do
>> irq1 = platform_get_irq(pdev, 0);
>> irq2 = platform_get_irq(pdev, 1);
>> etc..
>>
>>
>> So here, actually we do not need to use palmas one and it is
>> completely independent.
>>
>> Also the way you define the DT od palmas, the above one looks more
>> appropriate.
>>
> Ok that makes sense if you are actually planning to feed non palmas IRQs
> to the usb via either palmas GPIO or even directly! I did not know there
> was such a use case!
>
> Graeme
>

Hi Graeme,
There is multiple reqson for requesting this change:
- When we register the device through non-dt, the irq number come as 
IRQ_RESOURCE when we add mfd sub devices. We added the same irq number 
on mfd/palma.c
- So if that is true then irq should get from platform_irq_get() for 
having proper transfer of infomration.
- Same thing can be populated through dt. If any change then change will 
be on the driver which si registerung in place of on driver which is 
implementing.

Another important point is: we have tps80036 (called palams-charger in 
some of places) which support extended gpios and interrupts. The 
extended interrupt register is not properly offsetted and in current 
regmp-irq framework, it can ot be accomodate. For that the palma need to 
implement the local irq implementation.
In this case, really regmap will not help much as the registration will 
not be through regmap-irq as irq domain will be created locally.




More information about the devicetree-discuss mailing list