blob: faad2f5ab338a44bf2e11da9e6eae841026e1533 [file] [log] [blame]
Deepa Dinamaniad4752a2011-12-08 17:51:21 -08001/*
2 * * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above
10 * copyright notice, this list of conditions and the following
11 * disclaimer in the documentation and/or other materials provided
12 * with the distribution.
13 * * Neither the name of Code Aurora Forum, Inc. nor the names of its
14 * contributors may be used to endorse or promote products derived
15 * from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
18 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
21 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
24 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
26 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */
29
30#ifndef __PMIC_LED_H
31#define __PMIC_LED_H
32
33/* LED CNTL register */
34#define LED_CNTL_BASE 0x131
35#define PM8921_LED_CNTL_REG(n) (LED_CNTL_BASE + n)
36
37#define LED_DRV0_CNTL PM8921_LED_CNTL_REG(0)
38#define LED_DRV1_CNTL PM8921_LED_CNTL_REG(1)
39#define LED_DRV2_CNTL PM8921_LED_CNTL_REG(2)
40
41/* LED CNTL setting */
42
43/* Current settings:
44 * [00000, 10100]: Iout = x * 2 mA
45 * [10101, 11111]: invalid settings
46 */
47
48#define LED_CURRENT_SET(x) ((x) << 3)
49#define LED_SIGNAL_SELECT(x) ((x) << 0)
50
51#define PM8921_DRV_KEYPAD_CNTL_REG 0x48
52
53/* Keypad DRV CNTL Settings */
54
55#define DRV_FLASH_SEL(x) ((x) << 4)
56#define FLASH_LOGIC_SEL(x) ((x) << 2)
57#define FLASH_ENSEL(x) ((x) << 0)
58
59#define MAX_LC_LED_BRIGHTNESS 20
60#define MAX_FLASH_BRIGHTNESS 15
61#define MAX_KB_LED_BRIGHTNESS 15
62
63/*
64 * led ids
65 * @PM8921_ID_LED_0 - First low current led
66 * @PM8921_ID_LED_1 - Second low current led
67 * @PM8921_ID_LED_2 - Third low current led
68 */
69
70enum pm8921_leds {
71 PM8921_ID_LED_0,
72 PM8921_ID_LED_1,
73 PM8921_ID_LED_2,
74};
75
76enum led_mode{
77 MANUAL,
78 PWM1,
79 PWM2,
80 PWM3,
81 DBUS1,
82 DBUS2,
83 DBUS3,
84 DBUS4,
85};
86
87enum kp_backlight_mode{
88 MANUAL_MODE,
89 DBUS1_MODE,
90 DBUS2_MODE,
91 LPG_MODE,
92};
93
94enum kp_backlight_flash_logic{
95 FLASH_ON_WITH_DTEST_HIGH,
96 FLASH_ON_WITH_DTEST_LOW,
97};
98
99#endif