mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-11 16:29:05 +00:00
ab8500-mfd: add regulator support to ab8500 mfd device
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> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
This commit is contained in:
parent
1880a2fc59
commit
549931f99e
@ -16,6 +16,7 @@
|
|||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/mfd/core.h>
|
#include <linux/mfd/core.h>
|
||||||
#include <linux/mfd/ab8500.h>
|
#include <linux/mfd/ab8500.h>
|
||||||
|
#include <linux/regulator/ab8500.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Interrupt register offsets
|
* Interrupt register offsets
|
||||||
@ -352,6 +353,7 @@ static struct mfd_cell ab8500_devs[] = {
|
|||||||
{ .name = "ab8500-audio", },
|
{ .name = "ab8500-audio", },
|
||||||
{ .name = "ab8500-usb", },
|
{ .name = "ab8500-usb", },
|
||||||
{ .name = "ab8500-pwm", },
|
{ .name = "ab8500-pwm", },
|
||||||
|
{ .name = "ab8500-regulator", },
|
||||||
};
|
};
|
||||||
|
|
||||||
int __devinit ab8500_init(struct ab8500 *ab8500)
|
int __devinit ab8500_init(struct ab8500 *ab8500)
|
||||||
@ -411,7 +413,7 @@ int __devinit ab8500_init(struct ab8500 *ab8500)
|
|||||||
goto out_removeirq;
|
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,
|
ARRAY_SIZE(ab8500_devs), NULL,
|
||||||
ab8500->irq_base);
|
ab8500->irq_base);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -76,6 +76,8 @@
|
|||||||
#define AB8500_NR_IRQS 104
|
#define AB8500_NR_IRQS 104
|
||||||
#define AB8500_NUM_IRQ_REGS 13
|
#define AB8500_NUM_IRQ_REGS 13
|
||||||
|
|
||||||
|
#define AB8500_NUM_REGULATORS 15
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct ab8500 - ab8500 internal structure
|
* struct ab8500 - ab8500 internal structure
|
||||||
* @dev: parent device
|
* @dev: parent device
|
||||||
@ -108,14 +110,18 @@ struct ab8500 {
|
|||||||
u8 oldmask[AB8500_NUM_IRQ_REGS];
|
u8 oldmask[AB8500_NUM_IRQ_REGS];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct regulator_init_data;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct ab8500_platform_data - AB8500 platform data
|
* struct ab8500_platform_data - AB8500 platform data
|
||||||
* @irq_base: start of AB8500 IRQs, AB8500_NR_IRQS will be used
|
* @irq_base: start of AB8500 IRQs, AB8500_NR_IRQS will be used
|
||||||
* @init: board-specific initialization after detection of ab8500
|
* @init: board-specific initialization after detection of ab8500
|
||||||
|
* @regulator: machine-specific constraints for regulators
|
||||||
*/
|
*/
|
||||||
struct ab8500_platform_data {
|
struct ab8500_platform_data {
|
||||||
int irq_base;
|
int irq_base;
|
||||||
void (*init) (struct ab8500 *);
|
void (*init) (struct ab8500 *);
|
||||||
|
struct regulator_init_data *regulator[AB8500_NUM_REGULATORS];
|
||||||
};
|
};
|
||||||
|
|
||||||
extern int ab8500_write(struct ab8500 *a8500, u16 addr, u8 data);
|
extern int ab8500_write(struct ab8500 *a8500, u16 addr, u8 data);
|
||||||
|
25
include/linux/regulator/ab8500.h
Normal file
25
include/linux/regulator/ab8500.h
Normal file
@ -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
|
Loading…
x
Reference in New Issue
Block a user