lkml.org 
[lkml]   [2011]   [Jul]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 1/5] MFD: twl6040: Use resource to provide irq number for slaves
    Date
    Provide the irq number for slaves via resource on the
    platform device.
    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 | 25 +++++++++++++++++++++++++
    1 files changed, 25 insertions(+), 0 deletions(-)

    diff --git a/drivers/mfd/twl6040-core.c b/drivers/mfd/twl6040-core.c
    index cfaedb5..471f489 100644
    --- a/drivers/mfd/twl6040-core.c
    +++ b/drivers/mfd/twl6040-core.c
    @@ -435,6 +435,18 @@ unsigned int twl6040_get_sysclk(struct twl6040 *twl6040)
    }
    EXPORT_SYMBOL(twl6040_get_sysclk);

    +static struct resource twl6040_vibra_rsrc[] = {
    + {
    + .flags = IORESOURCE_IRQ,
    + },
    +};
    +
    +static struct resource twl6040_codec_rsrc[] = {
    + {
    + .flags = IORESOURCE_IRQ,
    + },
    +};
    +
    static int __devinit twl6040_probe(struct platform_device *pdev)
    {
    struct twl4030_audio_data *pdata = pdev->dev.platform_data;
    @@ -499,16 +511,29 @@ static int __devinit twl6040_probe(struct platform_device *pdev)
    twl6040_set_bits(twl6040, TWL6040_REG_ACCCTL, TWL6040_I2CSEL);

    if (pdata->codec) {
    + int irq = twl6040->irq_base + TWL6040_IRQ_PLUG;
    +
    cell = &twl6040->cells[children];
    cell->name = "twl6040-codec";
    + twl6040_codec_rsrc[0].start = irq;
    + twl6040_codec_rsrc[0].end = irq;
    + cell->resources = twl6040_codec_rsrc;
    + cell->num_resources = ARRAY_SIZE(twl6040_codec_rsrc);
    cell->platform_data = pdata->codec;
    cell->pdata_size = sizeof(*pdata->codec);
    children++;
    }

    if (pdata->vibra) {
    + int irq = twl6040->irq_base + TWL6040_IRQ_VIB;
    +
    cell = &twl6040->cells[children];
    cell->name = "twl6040-vibra";
    + twl6040_vibra_rsrc[0].start = irq;
    + twl6040_vibra_rsrc[0].end = irq;
    + cell->resources = twl6040_vibra_rsrc;
    + cell->num_resources = ARRAY_SIZE(twl6040_vibra_rsrc);
    +
    cell->platform_data = pdata->vibra;
    cell->pdata_size = sizeof(*pdata->vibra);
    children++;
    --
    1.7.6


    \
     
     \ /
      Last update: 2011-07-05 15:53    [W:0.023 / U:61.024 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site