Messages in this thread | | | Date | Tue, 5 Jul 2011 15:12:19 +0300 | From | Felipe Balbi <> | Subject | Re: Re: [PATCH 1/5] MFD: twl6040: Add irq variable for slave devices |
| |
Hi,
On Tue, Jul 05, 2011 at 03:09:06PM +0300, Péter Ujfalusi wrote: > On Tuesday 05 July 2011 13:22:46 Balbi, Felipe wrote: > > Hi, > > > > On Tue, Jul 05, 2011 at 12:14:22PM +0300, Peter Ujfalusi wrote: > > > Add new variable to pass the irq number for the slaves > > > devices of twl6040. > > > The irq number configuration is done in the twl6040-core > > > at probe time, so machine drivers do not need to be > > > modified. > > > > > > Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > > > --- > > > > > > drivers/mfd/twl6040-core.c | 2 ++ > > > include/linux/i2c/twl.h | 2 ++ > > > 2 files changed, 4 insertions(+), 0 deletions(-) > > > > > > diff --git a/drivers/mfd/twl6040-core.c b/drivers/mfd/twl6040-core.c > > > index cfaedb5..8607793 100644 > > > --- a/drivers/mfd/twl6040-core.c > > > +++ b/drivers/mfd/twl6040-core.c > > > @@ -501,6 +501,7 @@ static int __devinit twl6040_probe(struct > > > platform_device *pdev) > > > > > > if (pdata->codec) { > > > > > > cell = &twl6040->cells[children]; > > > cell->name = "twl6040-codec"; > > > > > > + pdata->codec->plug_irq = twl6040->irq_base + TWL6040_IRQ_PLUG; > > > > are the slave devices platform_devices ?? If so, you could use struct > > resource to pass IRQs as that's the "approved" way to do so. Then, on > > child driver, you could either rely on a particular order of the > > resources or assign them names and use platform_get_irq_byname() to > > fetch the correct one (if you have more than one, that is). > > You mean something like this: > > static struct resource twl6040_codec_rsrc[] = { > { > .flags = IORESOURCE_IRQ, > }, > }; > > ... > > @@ -501,6 +501,7 @@ static int __devinit twl6040_probe(struct platform_device > *pdev) > if (pdata->codec) { > cell = &twl6040->cells[children]; > cell->name = "twl6040-codec"; > + twl6040_codec_rsrc[0].start = twl6040->irq_base + TWL6040_IRQ_PLUG; > + twl6040_codec_rsrc[0].end = twl6040->irq_base + TWL6040_IRQ_PLUG; > + cell->resource = twl6040_codec_rsrc; > + cell->num_resources = ARRAY_SIZE(twl6040_codec_rsrc); > cell->platform_data = pdata->codec; > cell->pdata_size = sizeof(*pdata->codec); > children++; >
yes, that's what I meant :-)
-- balbi [unhandled content-type:application/pgp-signature] | |