blob: 28360c3a9b00f496560aa6af06151571a5860020 [file] [log] [blame]
/*
* 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 {
u8 chan_nr;
u8 led_current; /* mA x10, 0 if led is not connected */
u8 max_current;
u8 default_value;
};
struct lp5523_engine_config {
u8 prog_hex[192];
u8 engine1_start_addr;
u8 engine2_start_addr;
u8 engine3_start_addr;
u8 engine1_mode;
u8 engine2_mode;
u8 engine3_mode;
};
enum lp5523_mode {
LP5523_MODE_OFF = -1,
LP5523_MODE_NORMAL = 0,
LP5523_MODE_PREPROGRAMMED = 1,
};
#define LP5523_CLOCK_AUTO 0
#define LP5523_CLOCK_INT 1
#define LP5523_CLOCK_EXT 2
#define LP5523_CMD_LOAD 0x15 /* 00010101 */
#define LP5523_CMD_RUN 0x2a /* 00101010 */
#define LP5523_CMD_DISABLED 0x00 /* 00000000 */
struct lp5523_platform_data {
struct lp5523_led_config *led_config;
struct lp5523_engine_config *engine_config;
enum lp5523_mode boot_mode;
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 */