lkml.org 
[lkml]   [2010]   [Jul]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/3] ab8500-mfd: add regulator support to ab8500 mfd device
    Date
    From: Sundar R Iyer <sundar.iyer@stericsson.com>

    Acked-by: Linus Walleij <linus.walleij@stericsson.com>
    Acked-By: Mattias Wallin <mattias.wallin@stericsson.com>
    Acked-By: Bengt JONSSON <bengt.g.jonsson@stericsson.com>
    Signed-off-by: Sundar R Iyer <sundar.iyer@stericsson.com>
    ---
    drivers/mfd/ab8500-core.c | 4 +++-
    include/linux/mfd/ab8500.h | 6 ++++++
    include/linux/regulator/ab8500.h | 25 +++++++++++++++++++++++++
    3 files changed, 34 insertions(+), 1 deletions(-)
    create mode 100644 include/linux/regulator/ab8500.h

    diff --git a/drivers/mfd/ab8500-core.c b/drivers/mfd/ab8500-core.c
    index f3d26fa..defa786 100644
    --- a/drivers/mfd/ab8500-core.c
    +++ b/drivers/mfd/ab8500-core.c
    @@ -16,6 +16,7 @@
    #include <linux/platform_device.h>
    #include <linux/mfd/core.h>
    #include <linux/mfd/ab8500.h>
    +#include <linux/regulator/ab8500.h>

    /*
    * Interrupt register offsets
    @@ -352,6 +353,7 @@ static struct mfd_cell ab8500_devs[] = {
    { .name = "ab8500-audio", },
    { .name = "ab8500-usb", },
    { .name = "ab8500-pwm", },
    + { .name = "ab8500-regulator", },
    };

    int __devinit ab8500_init(struct ab8500 *ab8500)
    @@ -411,7 +413,7 @@ int __devinit ab8500_init(struct ab8500 *ab8500)
    goto out_removeirq;
    }

    - ret = mfd_add_devices(ab8500->dev, -1, ab8500_devs,
    + ret = mfd_add_devices(ab8500->dev, 0, ab8500_devs,
    ARRAY_SIZE(ab8500_devs), NULL,
    ab8500->irq_base);
    if (ret)
    diff --git a/include/linux/mfd/ab8500.h b/include/linux/mfd/ab8500.h
    index b63ff3b..f5cec45 100644
    --- a/include/linux/mfd/ab8500.h
    +++ b/include/linux/mfd/ab8500.h
    @@ -76,6 +76,8 @@
    #define AB8500_NR_IRQS 104
    #define AB8500_NUM_IRQ_REGS 13

    +#define AB8500_NUM_REGULATORS 15
    +
    /**
    * struct ab8500 - ab8500 internal structure
    * @dev: parent device
    @@ -108,14 +110,18 @@ struct ab8500 {
    u8 oldmask[AB8500_NUM_IRQ_REGS];
    };

    +struct regulator_init_data;
    +
    /**
    * struct ab8500_platform_data - AB8500 platform data
    * @irq_base: start of AB8500 IRQs, AB8500_NR_IRQS will be used
    * @init: board-specific initialization after detection of ab8500
    + * @regulator: machine-specific constraints for regulators
    */
    struct ab8500_platform_data {
    int irq_base;
    void (*init) (struct ab8500 *);
    + struct regulator_init_data *regulator[AB8500_NUM_REGULATORS];
    };

    extern int ab8500_write(struct ab8500 *a8500, u16 addr, u8 data);
    diff --git a/include/linux/regulator/ab8500.h b/include/linux/regulator/ab8500.h
    new file mode 100644
    index 0000000..f509877
    --- /dev/null
    +++ b/include/linux/regulator/ab8500.h
    @@ -0,0 +1,25 @@
    +/*
    + * Copyright (C) ST-Ericsson SA 2010
    + *
    + * License Terms: GNU General Public License v2
    + *
    + * Author: Sundar Iyer <sundar.iyer@stericsson.com> for ST-Ericsson
    + *
    + */
    +
    +#ifndef __LINUX_MFD_AB8500_REGULATOR_H
    +#define __LINUX_MFD_AB8500_REGULATOR_H
    +
    +/* AB8500 regulators */
    +#define AB8500_LDO_AUX1 0
    +#define AB8500_LDO_AUX2 1
    +#define AB8500_LDO_AUX3 2
    +#define AB8500_LDO_INTCORE 3
    +#define AB8500_LDO_TVOUT 4
    +#define AB8500_LDO_AUDIO 5
    +#define AB8500_LDO_ANAMIC1 6
    +#define AB8500_LDO_ANAMIC2 7
    +#define AB8500_LDO_DMIC 8
    +#define AB8500_LDO_ANA 9
    +
    +#endif
    --
    1.7.0


    \
     
     \ /
      Last update: 2010-07-13 08:27    [W:0.034 / U:30.116 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site