On 26/03/13 09:34, Laxman Dewangan wrote: > On Tuesday 26 March 2013 02:57 PM, Graeme Gregory wrote: >> On 26/03/13 09:12, Laxman Dewangan wrote: >>> On Tuesday 26 March 2013 02:31 PM, Graeme Gregory wrote: >>> >>> But still you are using the PALMAS macro here and indirectly it is >>> tied up. It is not completely independent. >>> If need to be independent then regmap pointer with address need to be >>> passed as independt header and no where on code whould refer the PALMA. >>> I think as per current code, it is not possible although it is your >>> big plan what I understand from some time back in one of patch >>> discussion. >>> >> It is actually almost possible, but it is something I gave up looking >> at. You can get the regmap of your parent i2c device without having >> knowledge of the type of parent. > > There is multiple regmap of parent and hence getting correct regmap is > really issue. May be RTC require regmap[0] and gpio require regmap[1]. > If you notice each regmap is connected to the correct dummy. Its possible to create the correct children per dummy. The twl6030 driver does this. But this is pointless now as I never intend to work on it so we shall go with the tightly coupled. > >> >>>>>>> + palmas_usb->dev = &pdev->dev; >>>>>>> + >>>>>>> + palmas_usb->irq1 = regmap_irq_get_virq(palmas->irq_data, >>>>>>> + PALMAS_ID_OTG_IRQ); >>>>>>> + palmas_usb->irq2 = regmap_irq_get_virq(palmas->irq_data, >>>>>>> + PALMAS_ID_IRQ); >>>>>>> + palmas_usb->irq3 = regmap_irq_get_virq(palmas->irq_data, >>>>>>> + >>>>>>> PALMAS_VBUS_OTG_IRQ); >>>>>>> + palmas_usb->irq4 = regmap_irq_get_virq(palmas->irq_data, >>>>>>> + PALMAS_VBUS_IRQ); >>>>>> Should be come from platform_get_irq() through platform driver. >>>>> No. It can be obtained from regmap too. >>> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html