linux/include/linux/leds-lp5521.h
<<
>>
Prefs
   1/*
   2 * LP5521 LED chip driver.
   3 *
   4 * Copyright (C) 2010 Nokia Corporation
   5 *
   6 * Contact: Samu Onkalo <samu.p.onkalo@nokia.com>
   7 *
   8 * This program is free software; you can redistribute it and/or
   9 * modify it under the terms of the GNU General Public License
  10 * version 2 as published by the Free Software Foundation.
  11 *
  12 * This program is distributed in the hope that it will be useful, but
  13 * WITHOUT ANY WARRANTY; without even the implied warranty of
  14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15 * General Public License for more details.
  16 *
  17 * You should have received a copy of the GNU General Public License
  18 * along with this program; if not, write to the Free Software
  19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  20 * 02110-1301 USA
  21 */
  22
  23#ifndef __LINUX_LP5521_H
  24#define __LINUX_LP5521_H
  25
  26/* See Documentation/leds/leds-lp5521.txt */
  27
  28struct lp5521_led_config {
  29        char            *name;
  30        u8              chan_nr;
  31        u8              led_current; /* mA x10, 0 if led is not connected */
  32        u8              max_current;
  33};
  34
  35struct lp5521_led_pattern {
  36        u8 *r;
  37        u8 *g;
  38        u8 *b;
  39        u8 size_r;
  40        u8 size_g;
  41        u8 size_b;
  42};
  43
  44#define LP5521_CLOCK_AUTO       0
  45#define LP5521_CLOCK_INT        1
  46#define LP5521_CLOCK_EXT        2
  47
  48/* Bits in CONFIG register */
  49#define LP5521_PWM_HF                   0x40    /* PWM: 0 = 256Hz, 1 = 558Hz */
  50#define LP5521_PWRSAVE_EN               0x20    /* 1 = Power save mode */
  51#define LP5521_CP_MODE_OFF              0       /* Charge pump (CP) off */
  52#define LP5521_CP_MODE_BYPASS           8       /* CP forced to bypass mode */
  53#define LP5521_CP_MODE_1X5              0x10    /* CP forced to 1.5x mode */
  54#define LP5521_CP_MODE_AUTO             0x18    /* Automatic mode selection */
  55#define LP5521_R_TO_BATT                4       /* R out: 0 = CP, 1 = Vbat */
  56#define LP5521_CLK_SRC_EXT              0       /* Ext-clk source (CLK_32K) */
  57#define LP5521_CLK_INT                  1       /* Internal clock */
  58#define LP5521_CLK_AUTO                 2       /* Automatic clock selection */
  59
  60struct lp5521_platform_data {
  61        struct lp5521_led_config *led_config;
  62        u8      num_channels;
  63        u8      clock_mode;
  64        int     (*setup_resources)(void);
  65        void    (*release_resources)(void);
  66        void    (*enable)(bool state);
  67        const char *label;
  68        u8      update_config;
  69        struct lp5521_led_pattern *patterns;
  70        int num_patterns;
  71};
  72
  73#endif /* __LINUX_LP5521_H */
  74
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.