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

From: Laxman Dewangan
Date: Tue Mar 26 2013 - 07:31:55 EST


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.


--
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/