mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6
* 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (90 commits) mfd: Push byte swaps out of wm8994 bulk read path mfd: Rename ab8500 gpadc header mfd: Constify WM8994 write path mfd: Push byte swap out of WM8994 bulk I/O mfd: Avoid copying data in WM8994 I2C write mfd: Remove copy from WM831x I2C write function mfd: Staticise WM8994 PM ops regulator: Add a subdriver for TI TPS6105x regulator portions v2 mfd: Add a core driver for TI TPS61050/TPS61052 chips v2 gpio: Add Tunnel Creek support to sch_gpio mfd: Add Tunnel Creek support to lpc_sch pci_ids: Add Intel Tunnel Creek LPC Bridge device ID. regulator: MAX8997/8966 support mfd: Add WM8994 bulk register write operation mfd: Append additional read write on 88pm860x mfd: Adopt mfd_data in 88pm860x input driver mfd: Adopt mfd_data in 88pm860x regulator mfd: Adopt mfd_data in 88pm860x led mfd: Adopt mfd_data in 88pm860x backlight mfd: Fix MAX8997 Kconfig entry typos ...
This commit is contained in:
commit
a6a1d6485e
110 changed files with 6059 additions and 785 deletions
|
|
@ -12,11 +12,12 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/fb.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/backlight.h>
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/mfd/88pm860x.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
#define MAX_BRIGHTNESS (0xFF)
|
||||
#define MIN_BRIGHTNESS (0)
|
||||
|
|
@ -161,32 +162,13 @@ static const struct backlight_ops pm860x_backlight_ops = {
|
|||
.get_brightness = pm860x_backlight_get_brightness,
|
||||
};
|
||||
|
||||
static int __check_device(struct pm860x_backlight_pdata *pdata, char *name)
|
||||
{
|
||||
struct pm860x_backlight_pdata *p = pdata;
|
||||
int ret = -EINVAL;
|
||||
|
||||
while (p && p->id) {
|
||||
if ((p->id != PM8606_ID_BACKLIGHT) || (p->flags < 0))
|
||||
break;
|
||||
|
||||
if (!strncmp(name, pm860x_backlight_name[p->flags],
|
||||
MFD_NAME_SIZE)) {
|
||||
ret = (int)p->flags;
|
||||
break;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int pm860x_backlight_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct pm860x_chip *chip = dev_get_drvdata(pdev->dev.parent);
|
||||
struct pm860x_platform_data *pm860x_pdata;
|
||||
struct pm860x_backlight_pdata *pdata = NULL;
|
||||
struct pm860x_backlight_data *data;
|
||||
struct backlight_device *bl;
|
||||
struct mfd_cell *cell;
|
||||
struct resource *res;
|
||||
struct backlight_properties props;
|
||||
unsigned char value;
|
||||
|
|
@ -199,10 +181,10 @@ static int pm860x_backlight_probe(struct platform_device *pdev)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (pdev->dev.parent->platform_data) {
|
||||
pm860x_pdata = pdev->dev.parent->platform_data;
|
||||
pdata = pm860x_pdata->backlight;
|
||||
}
|
||||
cell = pdev->dev.platform_data;
|
||||
if (cell == NULL)
|
||||
return -ENODEV;
|
||||
pdata = cell->mfd_data;
|
||||
if (pdata == NULL) {
|
||||
dev_err(&pdev->dev, "platform data isn't assigned to "
|
||||
"backlight\n");
|
||||
|
|
@ -219,7 +201,7 @@ static int pm860x_backlight_probe(struct platform_device *pdev)
|
|||
data->current_brightness = MAX_BRIGHTNESS;
|
||||
data->pwm = pdata->pwm;
|
||||
data->iset = pdata->iset;
|
||||
data->port = __check_device(pdata, name);
|
||||
data->port = pdata->flags;
|
||||
if (data->port < 0) {
|
||||
dev_err(&pdev->dev, "wrong platform data is assigned");
|
||||
kfree(data);
|
||||
|
|
|
|||
|
|
@ -250,8 +250,7 @@ static irqreturn_t tmiofb_irq(int irq, void *__info)
|
|||
*/
|
||||
static int tmiofb_hw_stop(struct platform_device *dev)
|
||||
{
|
||||
struct mfd_cell *cell = dev->dev.platform_data;
|
||||
struct tmio_fb_data *data = cell->driver_data;
|
||||
struct tmio_fb_data *data = mfd_get_data(dev);
|
||||
struct fb_info *info = platform_get_drvdata(dev);
|
||||
struct tmiofb_par *par = info->par;
|
||||
|
||||
|
|
@ -268,7 +267,7 @@ static int tmiofb_hw_stop(struct platform_device *dev)
|
|||
*/
|
||||
static int tmiofb_hw_init(struct platform_device *dev)
|
||||
{
|
||||
struct mfd_cell *cell = dev->dev.platform_data;
|
||||
const struct mfd_cell *cell = mfd_get_cell(dev);
|
||||
struct fb_info *info = platform_get_drvdata(dev);
|
||||
struct tmiofb_par *par = info->par;
|
||||
const struct resource *nlcr = &cell->resources[0];
|
||||
|
|
@ -312,8 +311,7 @@ static int tmiofb_hw_init(struct platform_device *dev)
|
|||
*/
|
||||
static void tmiofb_hw_mode(struct platform_device *dev)
|
||||
{
|
||||
struct mfd_cell *cell = dev->dev.platform_data;
|
||||
struct tmio_fb_data *data = cell->driver_data;
|
||||
struct tmio_fb_data *data = mfd_get_data(dev);
|
||||
struct fb_info *info = platform_get_drvdata(dev);
|
||||
struct fb_videomode *mode = info->mode;
|
||||
struct tmiofb_par *par = info->par;
|
||||
|
|
@ -559,9 +557,8 @@ static int tmiofb_ioctl(struct fb_info *fbi,
|
|||
static struct fb_videomode *
|
||||
tmiofb_find_mode(struct fb_info *info, struct fb_var_screeninfo *var)
|
||||
{
|
||||
struct mfd_cell *cell =
|
||||
info->device->platform_data;
|
||||
struct tmio_fb_data *data = cell->driver_data;
|
||||
struct tmio_fb_data *data =
|
||||
mfd_get_data(to_platform_device(info->device));
|
||||
struct fb_videomode *best = NULL;
|
||||
int i;
|
||||
|
||||
|
|
@ -581,9 +578,8 @@ static int tmiofb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
|
|||
{
|
||||
|
||||
struct fb_videomode *mode;
|
||||
struct mfd_cell *cell =
|
||||
info->device->platform_data;
|
||||
struct tmio_fb_data *data = cell->driver_data;
|
||||
struct tmio_fb_data *data =
|
||||
mfd_get_data(to_platform_device(info->device));
|
||||
|
||||
mode = tmiofb_find_mode(info, var);
|
||||
if (!mode || var->bits_per_pixel > 16)
|
||||
|
|
@ -683,8 +679,8 @@ static struct fb_ops tmiofb_ops = {
|
|||
|
||||
static int __devinit tmiofb_probe(struct platform_device *dev)
|
||||
{
|
||||
struct mfd_cell *cell = dev->dev.platform_data;
|
||||
struct tmio_fb_data *data = cell->driver_data;
|
||||
const struct mfd_cell *cell = mfd_get_cell(dev);
|
||||
struct tmio_fb_data *data = mfd_get_data(dev);
|
||||
struct resource *ccr = platform_get_resource(dev, IORESOURCE_MEM, 1);
|
||||
struct resource *lcr = platform_get_resource(dev, IORESOURCE_MEM, 0);
|
||||
struct resource *vram = platform_get_resource(dev, IORESOURCE_MEM, 2);
|
||||
|
|
@ -811,7 +807,7 @@ err_ioremap_ccr:
|
|||
|
||||
static int __devexit tmiofb_remove(struct platform_device *dev)
|
||||
{
|
||||
struct mfd_cell *cell = dev->dev.platform_data;
|
||||
const struct mfd_cell *cell = mfd_get_cell(dev);
|
||||
struct fb_info *info = platform_get_drvdata(dev);
|
||||
int irq = platform_get_irq(dev, 0);
|
||||
struct tmiofb_par *par;
|
||||
|
|
@ -941,7 +937,7 @@ static int tmiofb_suspend(struct platform_device *dev, pm_message_t state)
|
|||
#ifdef CONFIG_FB_TMIO_ACCELL
|
||||
struct tmiofb_par *par = info->par;
|
||||
#endif
|
||||
struct mfd_cell *cell = dev->dev.platform_data;
|
||||
const struct mfd_cell *cell = mfd_get_cell(dev);
|
||||
int retval = 0;
|
||||
|
||||
console_lock();
|
||||
|
|
@ -973,7 +969,7 @@ static int tmiofb_suspend(struct platform_device *dev, pm_message_t state)
|
|||
static int tmiofb_resume(struct platform_device *dev)
|
||||
{
|
||||
struct fb_info *info = platform_get_drvdata(dev);
|
||||
struct mfd_cell *cell = dev->dev.platform_data;
|
||||
const struct mfd_cell *cell = mfd_get_cell(dev);
|
||||
int retval = 0;
|
||||
|
||||
console_lock();
|
||||
|
|
|
|||
Loading…
Reference in a new issue