mirror of
https://github.com/genesi/linux-legacy.git
synced 2026-02-13 21:14:43 +00:00
This is i.MX BSP 5.0.0 release ported to 2.6.31 Signed-off-by: Rob Herring <r.herring@freescale.com> Signed-off-by: Alan Tull <r80115@freescale.com> Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
1083 lines
32 KiB
C
1083 lines
32 KiB
C
/*
|
||
* Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved.
|
||
*/
|
||
|
||
/*
|
||
* The code contained herein is licensed under the GNU Lesser General
|
||
* Public License. You may obtain a copy of the GNU Lesser General
|
||
* Public License Version 2.1 or later at the following locations:
|
||
*
|
||
* http://www.opensource.org/licenses/lgpl-license.html
|
||
* http://www.gnu.org/copyleft/lgpl.html
|
||
*/
|
||
#ifndef __ASM_ARCH_MXC_PMIC_LIGHT_H__
|
||
#define __ASM_ARCH_MXC_PMIC_LIGHT_H__
|
||
|
||
/*!
|
||
* @defgroup PMIC_LIGHT PMIC Light Driver
|
||
* @ingroup PMIC_DRVRS
|
||
*/
|
||
|
||
/*!
|
||
* @file arch-mxc/pmic_light.h
|
||
* @brief This is the header of PMIC Light driver.
|
||
*
|
||
* @ingroup PMIC_LIGHT
|
||
*/
|
||
|
||
#include <linux/ioctl.h>
|
||
#include <linux/pmic_status.h>
|
||
#include <linux/pmic_external.h>
|
||
|
||
/*!
|
||
* @name IOCTL user space interface
|
||
*/
|
||
|
||
/*! @{ */
|
||
/*!
|
||
* Enable Backlight.
|
||
* Argument type: none.
|
||
*/
|
||
#define PMIC_BKLIT_ENABLE _IO('p', 0xe0)
|
||
/*!
|
||
* Disable Backlight.
|
||
* Argument type: none.
|
||
*/
|
||
#define PMIC_BKLIT_DISABLE _IO('p', 0xe1)
|
||
/*!
|
||
* Set backlight configuration.
|
||
* Argument type: pointer to t_bklit_setting_param
|
||
*/
|
||
#define PMIC_SET_BKLIT _IOW('p', 0xe2, int)
|
||
/*!
|
||
* Get backlight configuration.
|
||
* Argument type: pointer to t_bklit_setting_param
|
||
*/
|
||
#define PMIC_GET_BKLIT _IOWR('p', 0xe3, int)
|
||
/*!
|
||
* Ramp up configuration.
|
||
* Argument type: t_bklit_channel
|
||
*/
|
||
#define PMIC_RAMPUP_BKLIT _IOW('p', 0xe4, int)
|
||
/*!
|
||
* Ramp down configuration.
|
||
* Argument type: t_bklit_channel
|
||
*/
|
||
#define PMIC_RAMPDOWN_BKLIT _IOW('p', 0xe5, int)
|
||
/*!
|
||
* Enable Tri-color LED.
|
||
* Argument type: t_tcled_enable_param
|
||
*/
|
||
#define PMIC_TCLED_ENABLE _IOW('p', 0xe6, int)
|
||
/*!
|
||
* Disable Tri-color LED.
|
||
* Argument type: t_funlight_bank
|
||
*/
|
||
#define PMIC_TCLED_DISABLE _IOW('p', 0xe7, int)
|
||
/*!
|
||
* Start Tri-color LED pattern.
|
||
* Argument type: t_fun_param
|
||
*/
|
||
#define PMIC_TCLED_PATTERN _IOW('p', 0xe8, int)
|
||
/*!
|
||
* Enable Backlight & tcled.
|
||
* Argument type: none.
|
||
*/
|
||
#define PMIC_BKLIT_TCLED_ENABLE _IO('p', 0xe9)
|
||
/*!
|
||
* Disable Backlight & tcled.
|
||
* Argument type: none.
|
||
*/
|
||
#define PMIC_BKLIT_TCLED_DISABLE _IO('p', 0xea)
|
||
/*!
|
||
* Reset ramp up configuration.
|
||
* Argument type: t_bklit_channel
|
||
*/
|
||
#define PMIC_OFF_RAMPUP_BKLIT _IOW('p', 0xeb, int)
|
||
/*!
|
||
* Reset ramp down configuration.
|
||
* Argument type: t_bklit_channel
|
||
*/
|
||
#define PMIC_OFF_RAMPDOWN_BKLIT _IOW('p', 0xec, int)
|
||
/*!
|
||
* Set tcled ind configuration.
|
||
* Argument type: t_tcled_ind_param
|
||
*/
|
||
#define PMIC_SET_TCLED _IOW('p', 0xed, int)
|
||
/*!
|
||
* Get tcled ind configuration.
|
||
* Argument type: t_tcled_ind_param
|
||
*/
|
||
#define PMIC_GET_TCLED _IOWR('p', 0xee, int)
|
||
/*! @} */
|
||
/*!
|
||
* @enum t_bklit_mode
|
||
* @brief Backlight modes.
|
||
*/
|
||
typedef enum {
|
||
BACKLIGHT_CURRENT_CTRL_MODE, /*! < Current control mode */
|
||
BACKLIGHT_TRIODE_MODE /*! < Triode mode */
|
||
} t_bklit_mode;
|
||
|
||
/*!
|
||
* @enum t_bklit_channel
|
||
* @brief Backlight channels.
|
||
*/
|
||
typedef enum {
|
||
BACKLIGHT_LED1, /*! < Backlight channel 1 */
|
||
BACKLIGHT_LED2, /*! < Backlight channel 2 */
|
||
BACKLIGHT_LED3 /*! < Backlight channel 3 */
|
||
} t_bklit_channel;
|
||
|
||
/*!
|
||
* @enum t_bklit_strobe_mode
|
||
* @brief Backlight Strobe Light Pulsing modes.
|
||
*/
|
||
typedef enum {
|
||
/*!
|
||
* No Strobe Light Pulsing
|
||
*/
|
||
BACKLIGHT_STROBE_NONE,
|
||
/*!
|
||
* Strobe Light Pulsing at 3.3% duty cycle over 300msec (Driver goes
|
||
* into Triode Mode with pulses constrained to 10msec.)
|
||
*/
|
||
BACKLIGHT_STROBE_FAST,
|
||
/*!
|
||
* Strobe Light Pulsing at 10% duty cycle over 100msec (Driver goes
|
||
* into Triode Mode with pulses constrained to 10msec.)
|
||
*/
|
||
BACKLIGHT_STROBE_SLOW
|
||
} t_bklit_strobe_mode;
|
||
|
||
/*!
|
||
* @struct t_bklit_setting_param
|
||
* @brief Backlight setting.
|
||
*/
|
||
|
||
typedef struct {
|
||
t_bklit_channel channel; /*!< Channel */
|
||
t_bklit_mode mode; /*!< Mode */
|
||
t_bklit_strobe_mode strobe; /*!< Strobe mode */
|
||
unsigned char current_level; /*!< Current level */
|
||
unsigned char duty_cycle; /*!< Duty cycle */
|
||
unsigned char cycle_time; /*!< Cycle time */
|
||
bool edge_slow; /*!< Edge Slow */
|
||
bool en_dis; /*!< Enable disable boost mode */
|
||
unsigned int abms; /*!< Adaptive boost
|
||
* mode selection */
|
||
unsigned int abr; /*!< Adaptive
|
||
* boost reference */
|
||
} t_bklit_setting_param;
|
||
|
||
/*!
|
||
* @enum t_funlight_bank
|
||
* @brief Tri-color LED fun light banks.
|
||
*/
|
||
typedef enum {
|
||
TCLED_FUN_BANK1 = 0, /*! < Fun light bank 1 */
|
||
TCLED_FUN_BANK2, /*! < Fun light bank 2 */
|
||
TCLED_FUN_BANK3 /*! < Fun light bank 3 */
|
||
} t_funlight_bank;
|
||
|
||
/*!
|
||
* @enum t_tcled_mode
|
||
* @brief Tri-color LED operation modes.
|
||
*
|
||
* The Tri-Color LED Driver circuitry includes 2 modes of operation. In LED
|
||
* Indicator Mode, this circuitry operates as Red and Green LED Drivers with
|
||
* flasher timing to indicate GSM network status. In Fun Light Mode, this
|
||
* circuitry provides expanded capability for current control and distribution
|
||
* that supplements the three channels.
|
||
*/
|
||
typedef enum {
|
||
TCLED_IND_MODE = 0, /*! < LED Indicator Mode */
|
||
TCLED_FUN_MODE /*! < Fun Light Mode */
|
||
} t_tcled_mode;
|
||
|
||
/*!
|
||
* @struct t_tcled_enable_param
|
||
* @brief enable setting.
|
||
*/
|
||
typedef struct {
|
||
t_funlight_bank bank; /*!< Bank */
|
||
t_tcled_mode mode; /*!< Mode */
|
||
} t_tcled_enable_param;
|
||
|
||
/*!
|
||
* @enum t_ind_channel
|
||
* @brief Tri-color LED indicator mode channels.
|
||
*
|
||
*/
|
||
|
||
typedef enum {
|
||
TCLED_IND_RED = 0, /*! < Red LED */
|
||
TCLED_IND_GREEN, /*! < Green LED */
|
||
TCLED_IND_BLUE /*! < Blue LED */
|
||
} t_ind_channel;
|
||
|
||
/*!
|
||
* @enum t_funlight_channel
|
||
* @brief Tri-color LED fun light mode channels.
|
||
*
|
||
*/
|
||
typedef enum {
|
||
TCLED_FUN_CHANNEL1 = 0, /*! < Fun light channel 1 (Red) */
|
||
TCLED_FUN_CHANNEL2, /*! < Fun light channel 2 (Green) */
|
||
TCLED_FUN_CHANNEL3 /*! < Fun light channel 3 (Blue) */
|
||
} t_funlight_channel;
|
||
|
||
/*!
|
||
* @enum t_tcled_ind_blink_pattern
|
||
* @brief Tri-color LED Indicator Mode blinking mode.
|
||
*/
|
||
typedef enum {
|
||
TCLED_IND_OFF = 0, /*! < Continuous off */
|
||
TCLED_IND_BLINK_1, /*! < 1 / 31 */
|
||
TCLED_IND_BLINK_2, /*! < 2 / 31 */
|
||
TCLED_IND_BLINK_3, /*! < 3 / 31 */
|
||
TCLED_IND_BLINK_4, /*! < 4 / 31 */
|
||
TCLED_IND_BLINK_5, /*! < 5 / 31 */
|
||
TCLED_IND_BLINK_6, /*! < 6 / 31 */
|
||
TCLED_IND_BLINK_7, /*! < 7 / 31 */
|
||
TCLED_IND_BLINK_8, /*! < 8 / 31 */
|
||
TCLED_IND_BLINK_9, /*! < 9 / 31 */
|
||
TCLED_IND_BLINK_10, /*! < 10 / 31 */
|
||
TCLED_IND_BLINK_11, /*! < 11 / 31 */
|
||
TCLED_IND_BLINK_12, /*! < 12 / 31 */
|
||
TCLED_IND_BLINK_13, /*! < 13 / 31 */
|
||
TCLED_IND_BLINK_14, /*! < 14 / 31 */
|
||
TCLED_IND_BLINK_15, /*! < 15 / 31 */
|
||
TCLED_IND_BLINK_16, /*! < 16 / 31 */
|
||
TCLED_IND_BLINK_17, /*! < 17 / 31 */
|
||
TCLED_IND_BLINK_18, /*! < 18 / 31 */
|
||
TCLED_IND_BLINK_19, /*! < 19 / 31 */
|
||
TCLED_IND_BLINK_20, /*! < 20 / 31 */
|
||
TCLED_IND_BLINK_21, /*! < 21 / 31 */
|
||
TCLED_IND_BLINK_22, /*! < 22 / 31 */
|
||
TCLED_IND_BLINK_23, /*! < 23 / 31 */
|
||
TCLED_IND_BLINK_24, /*! < 24 / 31 */
|
||
TCLED_IND_BLINK_25, /*! < 25 / 31 */
|
||
TCLED_IND_BLINK_26, /*! < 26 / 31 */
|
||
TCLED_IND_BLINK_27, /*! < 27 / 31 */
|
||
TCLED_IND_BLINK_28, /*! < 28 / 31 */
|
||
TCLED_IND_BLINK_29, /*! < 29 / 31 */
|
||
TCLED_IND_BLINK_30, /*! < 30 / 31 */
|
||
TCLED_IND_ON /*! < Continuous on */
|
||
} t_tcled_ind_blink_pattern;
|
||
|
||
/*!
|
||
* @enum t_tcled_cur_level
|
||
* @brief Tri-color LED current levels.
|
||
*/
|
||
typedef enum {
|
||
TCLED_CUR_LEVEL_1 = 0, /*! < Tri-Color LED current level 1 */
|
||
TCLED_CUR_LEVEL_2, /*! < Tri-Color LED current level 2 */
|
||
TCLED_CUR_LEVEL_3, /*! < Tri-Color LED current level 3 */
|
||
TCLED_CUR_LEVEL_4 /*! < Tri-Color LED current level 4 */
|
||
} t_tcled_cur_level;
|
||
|
||
/*!
|
||
* @enum t_tcled_fun_cycle_time
|
||
* @brief Tri-color LED fun light mode cycle time.
|
||
*/
|
||
typedef enum {
|
||
TC_CYCLE_TIME_1 = 0, /*! < Tri-Color LED cycle time 1 */
|
||
TC_CYCLE_TIME_2, /*! < Tri-Color LED cycle time 2 */
|
||
TC_CYCLE_TIME_3, /*! < Tri-Color LED cycle time 3 */
|
||
TC_CYCLE_TIME_4 /*! < Tri-Color LED cycle time 4 */
|
||
} t_tcled_fun_cycle_time;
|
||
|
||
/*!
|
||
* @enum t_tcled_fun_speed
|
||
* @brief Tri-color LED fun light mode pattern speed.
|
||
*/
|
||
typedef enum {
|
||
TC_OFF = 0, /*! < Tri-Color pattern off */
|
||
TC_SLOW, /*! < Tri-Color slow pattern */
|
||
TC_FAST /*! < Tri-Color fast pattern */
|
||
} t_tcled_fun_speed;
|
||
|
||
/*!
|
||
* @enum t_tcled_fun_speed
|
||
* @brief Tri-color LED fun light mode pattern speed.
|
||
*/
|
||
typedef enum {
|
||
TC_STROBE_OFF = 0, /*! < No strobe */
|
||
TC_STROBE_SLOW, /*! < Slow strobe pattern */
|
||
TC_STROBE_FAST /*! < fast strobe pattern */
|
||
} t_tcled_fun_strobe_speed;
|
||
|
||
/*!
|
||
* @enum t_chaselight_pattern
|
||
* @brief Tri-color LED fun light mode chasing light patterns.
|
||
*/
|
||
typedef enum {
|
||
PMIC_RGB = 0, /*!< R -> G -> B */
|
||
BGR /*!< B -> G -> R */
|
||
} t_chaselight_pattern;
|
||
|
||
/*!
|
||
* This enumeration of Fun Light Pattern.
|
||
*/
|
||
typedef enum {
|
||
/*!
|
||
* Blended ramps slow
|
||
*/
|
||
BLENDED_RAMPS_SLOW,
|
||
/*!
|
||
* Blended ramps fast
|
||
*/
|
||
BLENDED_RAMPS_FAST,
|
||
/*!
|
||
* Saw ramps slow
|
||
*/
|
||
SAW_RAMPS_SLOW,
|
||
/*!
|
||
* Saw ramps fast
|
||
*/
|
||
SAW_RAMPS_FAST,
|
||
/*!
|
||
* Blended bowtie slow
|
||
*/
|
||
BLENDED_BOWTIE_SLOW,
|
||
/*!
|
||
* Blended bowtie fast
|
||
*/
|
||
BLENDED_BOWTIE_FAST,
|
||
/*!
|
||
* Strobe slow
|
||
*/
|
||
STROBE_SLOW,
|
||
/*!
|
||
* Strobe fast
|
||
*/
|
||
STROBE_FAST,
|
||
/*!
|
||
* Chasing Light RGB Slow
|
||
*/
|
||
CHASING_LIGHT_RGB_SLOW,
|
||
/*!
|
||
* Chasing Light RGB fast
|
||
*/
|
||
CHASING_LIGHT_RGB_FAST,
|
||
/*!
|
||
* Chasing Light BGR Slow
|
||
*/
|
||
CHASING_LIGHT_BGR_SLOW,
|
||
/*!
|
||
* Chasing Light BGR fast
|
||
*/
|
||
CHASING_LIGHT_BGR_FAST,
|
||
} t_fun_pattern;
|
||
|
||
/*!
|
||
* @struct t_fun_param
|
||
* @brief LED fun pattern IOCTL parameter
|
||
*/
|
||
typedef struct {
|
||
t_funlight_bank bank; /*!< TCLED bank */
|
||
t_funlight_channel channel; /*!< TCLED channel */
|
||
t_fun_pattern pattern; /*!< Fun pattern */
|
||
} t_fun_param;
|
||
|
||
/*!
|
||
* @enum t_led_channel
|
||
* @brief LED channels including backlight and tri-color LEDs.
|
||
*/
|
||
typedef enum {
|
||
AUDIO_LED1, /*! < Backlight channel 1 */
|
||
AUDIO_LED2, /*! < Backlight channel 2 */
|
||
AUDIO_LEDR, /*! < Fun light channel 1 (Red) */
|
||
AUDIO_LEDG, /*! < Fun light channel 2 (Green) */
|
||
AUDIO_LEDB /*! < Fun light channel 3 (Blue) */
|
||
} t_led_channel;
|
||
|
||
/*!
|
||
* @enum t_aud_path
|
||
* @brief LED audio modulation in-out audio channels
|
||
*/
|
||
typedef enum {
|
||
MIXED_RX = 0, /*!< Mixed L & R Channel RX audio */
|
||
TX /*!< TX path */
|
||
} t_aud_path;
|
||
|
||
/*!
|
||
* @enum t_aud_gain
|
||
* @brief LED audio modulation in-out audio channels
|
||
*/
|
||
typedef enum {
|
||
GAIN_MINUS6DB = 0, /*!< -6 dB */
|
||
GAIN_0DB, /*!< 0 dB */
|
||
GAIN_6DB, /*!< 6 dB */
|
||
GAIN_12DB /*!< 12 dB */
|
||
} t_aud_gain;
|
||
|
||
/*!
|
||
* @struct t_tcled_ind_param
|
||
* @brief LED parameter
|
||
*/
|
||
typedef struct {
|
||
t_funlight_bank bank; /*! < tcled bank */
|
||
t_ind_channel channel; /*! < tcled channel */
|
||
t_tcled_cur_level level; /*! < tcled current level */
|
||
t_tcled_ind_blink_pattern pattern; /*! < tcled dutty cycle */
|
||
bool skip; /*! < tcled skip */
|
||
bool rampup; /*! < tcled rampup */
|
||
bool rampdown; /*! < tcled rampdown */
|
||
bool half_current; /*! < tcled half current */
|
||
} t_tcled_ind_param;
|
||
|
||
#if defined(CONFIG_MXC_PMIC_MC13892)
|
||
|
||
enum curr_level {
|
||
LIT_CURR_0 = 0,
|
||
LIT_CURR_3,
|
||
LIT_CURR_6,
|
||
LIT_CURR_9,
|
||
LIT_CURR_12,
|
||
LIT_CURR_15,
|
||
LIT_CURR_18,
|
||
LIT_CURR_21,
|
||
/* below setting only used for main/aux/keypad */
|
||
LIT_CURR_HI_0,
|
||
LIT_CURR_HI_6,
|
||
LIT_CURR_HI_12,
|
||
LIT_CURR_HI_18,
|
||
LIT_CURR_HI_24,
|
||
LIT_CURR_HI_30,
|
||
LIT_CURR_HI_36,
|
||
LIT_CURR_HI_42,
|
||
};
|
||
|
||
enum lit_channel {
|
||
LIT_MAIN = 0,
|
||
LIT_AUX,
|
||
LIT_KEY,
|
||
LIT_RED,
|
||
LIT_GREEN,
|
||
LIT_BLUE,
|
||
};
|
||
|
||
#endif
|
||
|
||
/* EXPORTED FUNCTIONS */
|
||
#ifdef __KERNEL__
|
||
/*!
|
||
* This function enables backlight & tcled.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_tcled_master_enable(void);
|
||
|
||
/*!
|
||
* This function disables backlight & tcled.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful
|
||
*/
|
||
PMIC_STATUS pmic_bklit_tcled_master_disable(void);
|
||
|
||
/*!
|
||
* This function enables backlight.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_master_enable(void);
|
||
|
||
/*!
|
||
* This function disables backlight.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_master_disable(void);
|
||
|
||
/*!
|
||
* This function sets backlight current level.
|
||
*
|
||
* @param channel Backlight channel
|
||
* @param level Backlight current level, as the following table.
|
||
* @verbatim
|
||
level current
|
||
------ -----------
|
||
0 0 mA
|
||
1 12 mA
|
||
2 24 mA
|
||
3 36 mA
|
||
4 48 mA
|
||
5 60 mA
|
||
6 72 mA
|
||
7 84 mA
|
||
@endverbatim
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_set_current(t_bklit_channel channel,
|
||
unsigned char level);
|
||
|
||
/*!
|
||
* This function retrives backlight current level.
|
||
*
|
||
* @param channel Backlight channel
|
||
* @param level Pointer to store backlight current level result.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_get_current(t_bklit_channel channel,
|
||
unsigned char *level);
|
||
|
||
/*!
|
||
* This function sets a backlight channel duty cycle.
|
||
* LED perceived brightness for each zone may be individually set by setting
|
||
* duty cycle. The default setting is for 0% duty cycle; this keeps all zone
|
||
* drivers turned off even after the master enable command. Each LED current
|
||
* sink can be turned on and adjusted for brightness with an independent 4 bit
|
||
* word for a duty cycle ranging from 0% to 100% in approximately 6.7% steps.
|
||
*
|
||
* @param channel Backlight channel.
|
||
* @param dc Backlight duty cycle, as the following table.
|
||
* @verbatim
|
||
dc Duty Cycle (% On-time over Cycle Time)
|
||
------ ---------------------------------------
|
||
0 0%
|
||
1 6.7%
|
||
2 13.3%
|
||
3 20%
|
||
4 26.7%
|
||
5 33.3%
|
||
6 40%
|
||
7 46.7%
|
||
8 53.3%
|
||
9 60%
|
||
10 66.7%
|
||
11 73.3%
|
||
12 80%
|
||
13 86.7%
|
||
14 93.3%
|
||
15 100%
|
||
@endverbatim
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_set_dutycycle(t_bklit_channel channel, unsigned char dc);
|
||
|
||
/*!
|
||
* This function retrives a backlight channel duty cycle.
|
||
*
|
||
* @param channel Backlight channel.
|
||
* @param cycle Pointer to backlight duty cycle.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_get_dutycycle(t_bklit_channel channel,
|
||
unsigned char *dc);
|
||
|
||
/*!
|
||
* This function sets a backlight channel cycle time.
|
||
* Cycle Time is defined as the period of a complete cycle of
|
||
* Time_on + Time_off. The default Cycle Time is set to 0.01 seconds such that
|
||
* the 100 Hz on-off cycling is averaged out by the eye to eliminate
|
||
* flickering. Additionally, the Cycle Time can be programmed to intentionally
|
||
* extend the period of on-off cycles for a visual pulsating or blinking effect.
|
||
*
|
||
* @param period Backlight cycle time, as the following table.
|
||
* @verbatim
|
||
period Cycle Time
|
||
-------- ------------
|
||
0 0.01 seconds
|
||
1 0.1 seconds
|
||
2 0.5 seconds
|
||
3 2 seconds
|
||
@endverbatim
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_set_cycle_time(unsigned char period);
|
||
|
||
/*!
|
||
* This function retrives a backlight channel cycle time setting.
|
||
*
|
||
* @param period Pointer to save backlight cycle time setting result.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_get_cycle_time(unsigned char *period);
|
||
|
||
/*!
|
||
* This function sets backlight operation mode. There are two modes of
|
||
* operations: current control and triode mode.
|
||
* The Duty Cycle/Cycle Time control is retained in Triode Mode. Audio
|
||
* coupling is not available in Triode Mode.
|
||
*
|
||
* @param channel Backlight channel.
|
||
* @param mode Backlight operation mode.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_set_mode(t_bklit_channel channel, t_bklit_mode mode);
|
||
/*!
|
||
* This function gets backlight operation mode. There are two modes of
|
||
* operations: current control and triode mode.
|
||
* The Duty Cycle/Cycle Time control is retained in Triode Mode. Audio
|
||
* coupling is not available in Triode Mode.
|
||
*
|
||
* @param channel Backlight channel.
|
||
* @param mode Backlight operation mode.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_get_mode(t_bklit_channel channel, t_bklit_mode * mode);
|
||
/*!
|
||
* This function starts backlight brightness ramp up function; ramp time is
|
||
* fixed at 0.5 seconds.
|
||
*
|
||
* @param channel Backlight channel.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_rampup(t_bklit_channel channel);
|
||
/*!
|
||
* This function stops backlight brightness ramp up function;
|
||
*
|
||
* @param channel Backlight channel.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_off_rampup(t_bklit_channel channel);
|
||
/*!
|
||
* This function starts backlight brightness ramp down function; ramp time is
|
||
* fixed at 0.5 seconds.
|
||
*
|
||
* @param channel Backlight channel.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_rampdown(t_bklit_channel channel);
|
||
/*!
|
||
* This function stops backlight brightness ramp down function.
|
||
*
|
||
* @param channel Backlight channel.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_off_rampdown(t_bklit_channel channel);
|
||
/*!
|
||
* This function enables backlight analog edge slowing mode. Analog Edge
|
||
* Slowing slows down the transient edges to reduce the chance of coupling LED
|
||
* modulation activity into other circuits. Rise and fall times will be targeted
|
||
* for approximately 50usec.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_enable_edge_slow(void);
|
||
|
||
/*!
|
||
* This function disables backlight analog edge slowing mode. The backlight
|
||
* drivers will default to an <20>Instant On<4F> mode.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_disable_edge_slow(void);
|
||
/*!
|
||
* This function gets backlight analog edge slowing mode. DThe backlight
|
||
*
|
||
* @param edge Edge slowing mode.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_get_edge_slow(bool * edge);
|
||
/*!
|
||
* This function sets backlight Strobe Light Pulsing mode.
|
||
*
|
||
* @param channel Backlight channel.
|
||
* @param mode Strobe Light Pulsing mode.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_set_strobemode(t_bklit_channel channel,
|
||
t_bklit_strobe_mode mode);
|
||
|
||
/*!
|
||
* This function enables tri-color LED.
|
||
*
|
||
* @param mode Tri-color LED operation mode.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_enable(t_tcled_mode mode, t_funlight_bank bank);
|
||
/*!
|
||
* This function disables tri-color LED.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_disable(t_funlight_bank bank);
|
||
/*!
|
||
* This function retrives tri-color LED operation mode.
|
||
*
|
||
* @param mode Pointer to Tri-color LED operation mode.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_get_mode(t_tcled_mode * mode, t_funlight_bank bank);
|
||
/*!
|
||
* This function sets a tri-color LED channel current level in indicator mode.
|
||
*
|
||
* @param channel Tri-color LED channel.
|
||
* @param level Current level.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_ind_set_current(t_ind_channel channel,
|
||
t_tcled_cur_level level,
|
||
t_funlight_bank bank);
|
||
/*!
|
||
* This function retrives a tri-color LED channel current level in indicator mode.
|
||
*
|
||
* @param channel Tri-color LED channel.
|
||
* @param level Pointer to current level.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_ind_get_current(t_ind_channel channel,
|
||
t_tcled_cur_level * level,
|
||
t_funlight_bank bank);
|
||
/*!
|
||
* This function sets a tri-color LED channel blinking pattern in indication
|
||
* mode.
|
||
*
|
||
* @param channel Tri-color LED channel.
|
||
* @param pattern Blinking pattern.
|
||
* @param skip If true, skip a cycle after each cycle.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
|
||
PMIC_STATUS pmic_tcled_ind_set_blink_pattern(t_ind_channel channel,
|
||
t_tcled_ind_blink_pattern pattern,
|
||
bool skip, t_funlight_bank bank);
|
||
/*!
|
||
* This function retrives a tri-color LED channel blinking pattern in
|
||
* indication mode.
|
||
*
|
||
* @param channel Tri-color LED channel.
|
||
* @param pattern Pointer to Blinking pattern.
|
||
* @param skip Pointer to a boolean variable indicating if skip
|
||
* a cycle after each cycle.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_ind_get_blink_pattern(t_ind_channel channel,
|
||
t_tcled_ind_blink_pattern *
|
||
pattern, bool * skip,
|
||
t_funlight_bank bank);
|
||
/*!
|
||
* This function sets a tri-color LED channel current level in Fun Light mode.
|
||
*
|
||
* @param bank Tri-color LED bank
|
||
* @param channel Tri-color LED channel.
|
||
* @param level Current level.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_fun_set_current(t_funlight_bank bank,
|
||
t_funlight_channel channel,
|
||
t_tcled_cur_level level);
|
||
|
||
/*!
|
||
* This function retrives a tri-color LED channel current level
|
||
* in Fun Light mode.
|
||
*
|
||
* @param bank Tri-color LED bank
|
||
* @param channel Tri-color LED channel.
|
||
* @param level Pointer to current level.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_fun_get_current(t_funlight_bank bank,
|
||
t_funlight_channel channel,
|
||
t_tcled_cur_level * level);
|
||
|
||
/*!
|
||
* This function sets tri-color LED cycle time in Fun Light mode.
|
||
*
|
||
* @param bank Tri-color LED bank
|
||
* @param ct Cycle time.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_fun_set_cycletime(t_funlight_bank bank,
|
||
t_tcled_fun_cycle_time ct);
|
||
|
||
/*!
|
||
* This function retrives tri-color LED cycle time in Fun Light mode.
|
||
*
|
||
* @param bank Tri-color LED bank
|
||
* @param ct Pointer to cycle time.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_fun_get_cycletime(t_funlight_bank bank,
|
||
t_tcled_fun_cycle_time * ct);
|
||
|
||
/*!
|
||
* This function sets a tri-color LED channel duty cycle in Fun Light mode.
|
||
*
|
||
* @param bank Tri-color LED bank
|
||
* @param channel Tri-color LED channel.
|
||
* @param dc Duty cycle.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_fun_set_dutycycle(t_funlight_bank bank,
|
||
t_funlight_channel channel,
|
||
unsigned char dc);
|
||
|
||
/*!
|
||
* This function retrives a tri-color LED channel duty cycle in Fun Light mode.
|
||
*
|
||
* @param bank Tri-color LED bank
|
||
* @param channel Tri-color LED channel.
|
||
* @param dc Pointer to duty cycle.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_fun_get_dutycycle(t_funlight_bank bank,
|
||
t_funlight_channel channel,
|
||
unsigned char *dc);
|
||
|
||
/*!
|
||
* This function initiates Blended Ramp fun light pattern.
|
||
*
|
||
* @param bank Tri-color LED bank
|
||
* @param speed Speed of pattern.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_fun_blendedramps(t_funlight_bank bank,
|
||
t_tcled_fun_speed speed);
|
||
|
||
/*!
|
||
* This function initiates Saw Ramp fun light pattern.
|
||
*
|
||
* @param bank Tri-color LED bank
|
||
* @param speed Speed of pattern.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_fun_sawramps(t_funlight_bank bank,
|
||
t_tcled_fun_speed speed);
|
||
|
||
/*!
|
||
* This function initiates Blended Bowtie fun light pattern.
|
||
*
|
||
* @param bank Tri-color LED bank
|
||
* @param speed Speed of pattern.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_fun_blendedbowtie(t_funlight_bank bank,
|
||
t_tcled_fun_speed speed);
|
||
|
||
/*!
|
||
* This function initiates Chasing Lights fun light pattern.
|
||
*
|
||
* @param bank Tri-color LED bank
|
||
* @param pattern Chasing light pattern mode.
|
||
* @param speed Speed of pattern.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_fun_chasinglightspattern(t_funlight_bank bank,
|
||
t_chaselight_pattern pattern,
|
||
t_tcled_fun_speed speed);
|
||
|
||
/*!
|
||
* This function initiates Strobe Mode fun light pattern.
|
||
*
|
||
* @param bank Tri-color LED bank
|
||
* @param channel Tri-color LED channel.
|
||
* @param speed Speed of pattern.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_fun_strobe(t_funlight_bank bank,
|
||
t_funlight_channel channel,
|
||
t_tcled_fun_strobe_speed speed);
|
||
|
||
/*!
|
||
* This function initiates Tri-color LED brightness Ramp Up function; Ramp time
|
||
* is fixed at 1 second.
|
||
*
|
||
* @param bank Tri-color LED bank
|
||
* @param channel Tri-color LED channel.
|
||
* @param rampup Ramp-up configuration.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_fun_rampup(t_funlight_bank bank,
|
||
t_funlight_channel channel, bool rampup);
|
||
/*!
|
||
* This function gets Tri-color LED brightness Ramp Up function; Ramp time
|
||
* is fixed at 1 second.
|
||
*
|
||
* @param bank Tri-color LED bank
|
||
* @param channel Tri-color LED channel.
|
||
* @param rampup Ramp-up configuration.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_get_fun_rampup(t_funlight_bank bank,
|
||
t_funlight_channel channel,
|
||
bool * rampup);
|
||
|
||
/*!
|
||
* This function initiates Tri-color LED brightness Ramp Down function; Ramp
|
||
* time is fixed at 1 second.
|
||
*
|
||
* @param bank Tri-color LED bank
|
||
* @param channel Tri-color LED channel.
|
||
* @param rampdown Ramp-down configuration.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_fun_rampdown(t_funlight_bank bank,
|
||
t_funlight_channel channel, bool rampdown);
|
||
/*!
|
||
* This function initiates Tri-color LED brightness Ramp Down function; Ramp
|
||
* time is fixed at 1 second.
|
||
*
|
||
* @param bank Tri-color LED bank
|
||
* @param channel Tri-color LED channel.
|
||
* @param rampdown Ramp-down configuration.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_get_fun_rampdown(t_funlight_bank bank,
|
||
t_funlight_channel channel,
|
||
bool * rampdown);
|
||
|
||
/*!
|
||
* This function enables a Tri-color channel triode mode.
|
||
*
|
||
* @param bank Tri-color LED bank
|
||
* @param channel Tri-color LED channel.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_fun_triode_on(t_funlight_bank bank,
|
||
t_funlight_channel channel);
|
||
|
||
/*!
|
||
* This function disables a Tri-color LED channel triode mode.
|
||
*
|
||
* @param bank Tri-color LED bank
|
||
* @param channel Tri-color LED channel.
|
||
*
|
||
* @return This function returns PMIC_SUCCESS if successful.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_fun_triode_off(t_funlight_bank bank,
|
||
t_funlight_channel channel);
|
||
|
||
/*!
|
||
* This function enables Tri-color LED edge slowing.
|
||
*
|
||
* @return This function returns PMIC_NOT_SUPPORTED.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_enable_edge_slow(void);
|
||
|
||
/*!
|
||
* This function disables Tri-color LED edge slowing.
|
||
*
|
||
* @return This function returns PMIC_NOT_SUPPORTED.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_disable_edge_slow(void);
|
||
|
||
/*!
|
||
* This function enables Tri-color LED half current mode.
|
||
*
|
||
* @return This function returns PMIC_NOT_SUPPORTED.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_enable_half_current(void);
|
||
|
||
/*!
|
||
* This function disables Tri-color LED half current mode.
|
||
*
|
||
* @return This function returns PMIC_NOT_SUPPORTED.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_disable_half_current(void);
|
||
|
||
/*!
|
||
* This function enables backlight or Tri-color LED audio modulation.
|
||
*
|
||
* @return This function returns PMIC_NOT_SUPPORTED.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_enable_audio_modulation(t_led_channel channel,
|
||
t_aud_path path,
|
||
t_aud_gain gain,
|
||
bool lpf_bypass);
|
||
|
||
/*!
|
||
* This function disables backlight or Tri-color LED audio modulation.
|
||
*
|
||
* @return This function returns PMIC_NOT_SUPPORTED.
|
||
*/
|
||
PMIC_STATUS pmic_tcled_disable_audio_modulation(void);
|
||
/*!
|
||
* This function enables the boost mode.
|
||
* Only on mc13783 2.0 or higher
|
||
*
|
||
* @param en_dis Enable or disable the boost mode
|
||
*
|
||
* @return This function returns 0 if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_set_boost_mode(bool en_dis);
|
||
|
||
/*!
|
||
* This function gets the boost mode.
|
||
* Only on mc13783 2.0 or higher
|
||
*
|
||
* @param en_dis Enable or disable the boost mode
|
||
*
|
||
* @return This function returns 0 if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_get_boost_mode(bool * en_dis);
|
||
|
||
/*!
|
||
* This function sets boost mode configuration
|
||
* Only on mc13783 2.0 or higher
|
||
*
|
||
* @param abms Define adaptive boost mode selection
|
||
* @param abr Define adaptive boost reference
|
||
*
|
||
* @return This function returns 0 if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_config_boost_mode(unsigned int abms, unsigned int abr);
|
||
|
||
/*!
|
||
* This function gets boost mode configuration
|
||
* Only on mc13783 2.0 or higher
|
||
*
|
||
* @param abms Define adaptive boost mode selection
|
||
* @param abr Define adaptive boost reference
|
||
*
|
||
* @return This function returns 0 if successful.
|
||
*/
|
||
PMIC_STATUS pmic_bklit_gets_boost_mode(unsigned int *abms, unsigned int *abr);
|
||
|
||
#if defined(CONFIG_MXC_PMIC_MC13892)
|
||
|
||
PMIC_STATUS mc13892_bklit_set_current(enum lit_channel channel,
|
||
unsigned char level);
|
||
PMIC_STATUS mc13892_bklit_get_current(enum lit_channel channel,
|
||
unsigned char *level);
|
||
PMIC_STATUS mc13892_bklit_set_dutycycle(enum lit_channel channel,
|
||
unsigned char dc);
|
||
PMIC_STATUS mc13892_bklit_get_dutycycle(enum lit_channel channel,
|
||
unsigned char *dc);
|
||
PMIC_STATUS mc13892_bklit_set_ramp(enum lit_channel channel, int flag);
|
||
PMIC_STATUS mc13892_bklit_get_ramp(enum lit_channel channel, int *flag);
|
||
PMIC_STATUS mc13892_bklit_set_blink_p(enum lit_channel channel, int period);
|
||
PMIC_STATUS mc13892_bklit_get_blink_p(enum lit_channel channel, int *period);
|
||
|
||
#endif
|
||
|
||
#endif /* __KERNEL__ */
|
||
|
||
#endif /* __ASM_ARCH_MXC_PMIC_LIGHT_H__ */
|