Commit df4094d2 authored by Milo(Woogyom) Kim's avatar Milo(Woogyom) Kim Committed by Bryan Wu

leds-lp5521/5523: use new lp55xx common header

 The LP55xx common driver provides a new header, leds-lp55xx.h.
 This driver enables removing duplicate code for both drivers and
 making coherent driver structure.
 LP5521 and LP5523/55231 platform data were merged into one common file.
 Therefore, the LP5521/5523 platform code need to be fixed.

 This patch has been already acked.

 For ux500: https://lkml.org/lkml/2012/10/11/417Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>

 For omap: https://lkml.org/lkml/2012/10/11/334Acked-by: default avatarTony Lindgren <tony@atomide.com>
Signed-off-by: default avatarMilo(Woogyom) Kim <milo.kim@ti.com>
Signed-off-by: default avatarBryan Wu <cooloney@gmail.com>
parent 79bcc10b
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
#include <sound/tpa6130a2-plat.h> #include <sound/tpa6130a2-plat.h>
#include <media/radio-si4713.h> #include <media/radio-si4713.h>
#include <media/si4713.h> #include <media/si4713.h>
#include <linux/leds-lp5523.h> #include <linux/platform_data/leds-lp55xx.h>
#include <../drivers/staging/iio/light/tsl2563.h> #include <../drivers/staging/iio/light/tsl2563.h>
#include <linux/lis3lv02d.h> #include <linux/lis3lv02d.h>
...@@ -160,7 +160,7 @@ static struct tsl2563_platform_data rx51_tsl2563_platform_data = { ...@@ -160,7 +160,7 @@ static struct tsl2563_platform_data rx51_tsl2563_platform_data = {
#endif #endif
#if defined(CONFIG_LEDS_LP5523) || defined(CONFIG_LEDS_LP5523_MODULE) #if defined(CONFIG_LEDS_LP5523) || defined(CONFIG_LEDS_LP5523_MODULE)
static struct lp5523_led_config rx51_lp5523_led_config[] = { static struct lp55xx_led_config rx51_lp5523_led_config[] = {
{ {
.chan_nr = 0, .chan_nr = 0,
.led_current = 50, .led_current = 50,
...@@ -207,10 +207,10 @@ static void rx51_lp5523_enable(bool state) ...@@ -207,10 +207,10 @@ static void rx51_lp5523_enable(bool state)
gpio_set_value(RX51_LP5523_CHIP_EN_GPIO, !!state); gpio_set_value(RX51_LP5523_CHIP_EN_GPIO, !!state);
} }
static struct lp5523_platform_data rx51_lp5523_platform_data = { static struct lp55xx_platform_data rx51_lp5523_platform_data = {
.led_config = rx51_lp5523_led_config, .led_config = rx51_lp5523_led_config,
.num_channels = ARRAY_SIZE(rx51_lp5523_led_config), .num_channels = ARRAY_SIZE(rx51_lp5523_led_config),
.clock_mode = LP5523_CLOCK_AUTO, .clock_mode = LP55XX_CLOCK_AUTO,
.setup_resources = rx51_lp5523_setup, .setup_resources = rx51_lp5523_setup,
.release_resources = rx51_lp5523_release, .release_resources = rx51_lp5523_release,
.enable = rx51_lp5523_enable, .enable = rx51_lp5523_enable,
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
#include <linux/mfd/tps6105x.h> #include <linux/mfd/tps6105x.h>
#include <linux/mfd/abx500/ab8500-gpio.h> #include <linux/mfd/abx500/ab8500-gpio.h>
#include <linux/mfd/abx500/ab8500-codec.h> #include <linux/mfd/abx500/ab8500-codec.h>
#include <linux/leds-lp5521.h> #include <linux/platform_data/leds-lp55xx.h>
#include <linux/input.h> #include <linux/input.h>
#include <linux/smsc911x.h> #include <linux/smsc911x.h>
#include <linux/gpio_keys.h> #include <linux/gpio_keys.h>
...@@ -320,7 +320,7 @@ static struct tc3589x_platform_data mop500_tc35892_data = { ...@@ -320,7 +320,7 @@ static struct tc3589x_platform_data mop500_tc35892_data = {
.irq_base = MOP500_EGPIO_IRQ_BASE, .irq_base = MOP500_EGPIO_IRQ_BASE,
}; };
static struct lp5521_led_config lp5521_pri_led[] = { static struct lp55xx_led_config lp5521_pri_led[] = {
[0] = { [0] = {
.chan_nr = 0, .chan_nr = 0,
.led_current = 0x2f, .led_current = 0x2f,
...@@ -338,14 +338,14 @@ static struct lp5521_led_config lp5521_pri_led[] = { ...@@ -338,14 +338,14 @@ static struct lp5521_led_config lp5521_pri_led[] = {
}, },
}; };
static struct lp5521_platform_data __initdata lp5521_pri_data = { static struct lp55xx_platform_data __initdata lp5521_pri_data = {
.label = "lp5521_pri", .label = "lp5521_pri",
.led_config = &lp5521_pri_led[0], .led_config = &lp5521_pri_led[0],
.num_channels = 3, .num_channels = 3,
.clock_mode = LP5521_CLOCK_EXT, .clock_mode = LP55XX_CLOCK_EXT,
}; };
static struct lp5521_led_config lp5521_sec_led[] = { static struct lp55xx_led_config lp5521_sec_led[] = {
[0] = { [0] = {
.chan_nr = 0, .chan_nr = 0,
.led_current = 0x2f, .led_current = 0x2f,
...@@ -363,11 +363,11 @@ static struct lp5521_led_config lp5521_sec_led[] = { ...@@ -363,11 +363,11 @@ static struct lp5521_led_config lp5521_sec_led[] = {
}, },
}; };
static struct lp5521_platform_data __initdata lp5521_sec_data = { static struct lp55xx_platform_data __initdata lp5521_sec_data = {
.label = "lp5521_sec", .label = "lp5521_sec",
.led_config = &lp5521_sec_led[0], .led_config = &lp5521_sec_led[0],
.num_channels = 3, .num_channels = 3,
.clock_mode = LP5521_CLOCK_EXT, .clock_mode = LP55XX_CLOCK_EXT,
}; };
static struct i2c_board_info __initdata mop500_i2c0_devices[] = { static struct i2c_board_info __initdata mop500_i2c0_devices[] = {
......
/*
* LP5521 LED chip driver.
*
* Copyright (C) 2010 Nokia Corporation
*
* Contact: Samu Onkalo <samu.p.onkalo@nokia.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*/
#ifndef __LINUX_LP5521_H
#define __LINUX_LP5521_H
/* See Documentation/leds/leds-lp5521.txt */
struct lp5521_led_config {
char *name;
u8 chan_nr;
u8 led_current; /* mA x10, 0 if led is not connected */
u8 max_current;
};
struct lp5521_led_pattern {
u8 *r;
u8 *g;
u8 *b;
u8 size_r;
u8 size_g;
u8 size_b;
};
#define LP5521_CLOCK_AUTO 0
#define LP5521_CLOCK_INT 1
#define LP5521_CLOCK_EXT 2
/* Bits in CONFIG register */
#define LP5521_PWM_HF 0x40 /* PWM: 0 = 256Hz, 1 = 558Hz */
#define LP5521_PWRSAVE_EN 0x20 /* 1 = Power save mode */
#define LP5521_CP_MODE_OFF 0 /* Charge pump (CP) off */
#define LP5521_CP_MODE_BYPASS 8 /* CP forced to bypass mode */
#define LP5521_CP_MODE_1X5 0x10 /* CP forced to 1.5x mode */
#define LP5521_CP_MODE_AUTO 0x18 /* Automatic mode selection */
#define LP5521_R_TO_BATT 4 /* R out: 0 = CP, 1 = Vbat */
#define LP5521_CLK_SRC_EXT 0 /* Ext-clk source (CLK_32K) */
#define LP5521_CLK_INT 1 /* Internal clock */
#define LP5521_CLK_AUTO 2 /* Automatic clock selection */
struct lp5521_platform_data {
struct lp5521_led_config *led_config;
u8 num_channels;
u8 clock_mode;
int (*setup_resources)(void);
void (*release_resources)(void);
void (*enable)(bool state);
const char *label;
u8 update_config;
struct lp5521_led_pattern *patterns;
int num_patterns;
};
#endif /* __LINUX_LP5521_H */
/*
* LP5523 LED Driver
*
* Copyright (C) 2010 Nokia Corporation
*
* Contact: Samu Onkalo <samu.p.onkalo@nokia.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*/
#ifndef __LINUX_LP5523_H
#define __LINUX_LP5523_H
/* See Documentation/leds/leds-lp5523.txt */
struct lp5523_led_config {
const char *name;
u8 chan_nr;
u8 led_current; /* mA x10, 0 if led is not connected */
u8 max_current;
};
#define LP5523_CLOCK_AUTO 0
#define LP5523_CLOCK_INT 1
#define LP5523_CLOCK_EXT 2
struct lp5523_platform_data {
struct lp5523_led_config *led_config;
u8 num_channels;
u8 clock_mode;
int (*setup_resources)(void);
void (*release_resources)(void);
void (*enable)(bool state);
const char *label;
};
#endif /* __LINUX_LP5523_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment