Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  * Definitions and platform data for Analog Devices
0004  * Backlight drivers ADP8870
0005  *
0006  * Copyright 2009-2010 Analog Devices Inc.
0007  */
0008 
0009 #ifndef __LINUX_I2C_ADP8870_H
0010 #define __LINUX_I2C_ADP8870_H
0011 
0012 #define ID_ADP8870      8870
0013 
0014 #define ADP8870_MAX_BRIGHTNESS  0x7F
0015 #define FLAG_OFFT_SHIFT 8
0016 
0017 /*
0018  * LEDs subdevice platform data
0019  */
0020 
0021 #define ADP8870_LED_DIS_BLINK   (0 << FLAG_OFFT_SHIFT)
0022 #define ADP8870_LED_OFFT_600ms  (1 << FLAG_OFFT_SHIFT)
0023 #define ADP8870_LED_OFFT_1200ms (2 << FLAG_OFFT_SHIFT)
0024 #define ADP8870_LED_OFFT_1800ms (3 << FLAG_OFFT_SHIFT)
0025 
0026 #define ADP8870_LED_ONT_200ms   0
0027 #define ADP8870_LED_ONT_600ms   1
0028 #define ADP8870_LED_ONT_800ms   2
0029 #define ADP8870_LED_ONT_1200ms  3
0030 
0031 #define ADP8870_LED_D7      (7)
0032 #define ADP8870_LED_D6      (6)
0033 #define ADP8870_LED_D5      (5)
0034 #define ADP8870_LED_D4      (4)
0035 #define ADP8870_LED_D3      (3)
0036 #define ADP8870_LED_D2      (2)
0037 #define ADP8870_LED_D1      (1)
0038 
0039 /*
0040  * Backlight subdevice platform data
0041  */
0042 
0043 #define ADP8870_BL_D7       (1 << 6)
0044 #define ADP8870_BL_D6       (1 << 5)
0045 #define ADP8870_BL_D5       (1 << 4)
0046 #define ADP8870_BL_D4       (1 << 3)
0047 #define ADP8870_BL_D3       (1 << 2)
0048 #define ADP8870_BL_D2       (1 << 1)
0049 #define ADP8870_BL_D1       (1 << 0)
0050 
0051 #define ADP8870_FADE_T_DIS  0   /* Fade Timer Disabled */
0052 #define ADP8870_FADE_T_300ms    1   /* 0.3 Sec */
0053 #define ADP8870_FADE_T_600ms    2
0054 #define ADP8870_FADE_T_900ms    3
0055 #define ADP8870_FADE_T_1200ms   4
0056 #define ADP8870_FADE_T_1500ms   5
0057 #define ADP8870_FADE_T_1800ms   6
0058 #define ADP8870_FADE_T_2100ms   7
0059 #define ADP8870_FADE_T_2400ms   8
0060 #define ADP8870_FADE_T_2700ms   9
0061 #define ADP8870_FADE_T_3000ms   10
0062 #define ADP8870_FADE_T_3500ms   11
0063 #define ADP8870_FADE_T_4000ms   12
0064 #define ADP8870_FADE_T_4500ms   13
0065 #define ADP8870_FADE_T_5000ms   14
0066 #define ADP8870_FADE_T_5500ms   15  /* 5.5 Sec */
0067 
0068 #define ADP8870_FADE_LAW_LINEAR 0
0069 #define ADP8870_FADE_LAW_SQUARE 1
0070 #define ADP8870_FADE_LAW_CUBIC1 2
0071 #define ADP8870_FADE_LAW_CUBIC2 3
0072 
0073 #define ADP8870_BL_AMBL_FILT_80ms   0   /* Light sensor filter time */
0074 #define ADP8870_BL_AMBL_FILT_160ms  1
0075 #define ADP8870_BL_AMBL_FILT_320ms  2
0076 #define ADP8870_BL_AMBL_FILT_640ms  3
0077 #define ADP8870_BL_AMBL_FILT_1280ms 4
0078 #define ADP8870_BL_AMBL_FILT_2560ms 5
0079 #define ADP8870_BL_AMBL_FILT_5120ms 6
0080 #define ADP8870_BL_AMBL_FILT_10240ms    7   /* 10.24 sec */
0081 
0082 /*
0083  * Blacklight current 0..30mA
0084  */
0085 #define ADP8870_BL_CUR_mA(I)        ((I * 127) / 30)
0086 
0087 /*
0088  * L2 comparator current 0..1106uA
0089  */
0090 #define ADP8870_L2_COMP_CURR_uA(I)  ((I * 255) / 1106)
0091 
0092 /*
0093  * L3 comparator current 0..551uA
0094  */
0095 #define ADP8870_L3_COMP_CURR_uA(I)  ((I * 255) / 551)
0096 
0097 /*
0098  * L4 comparator current 0..275uA
0099  */
0100 #define ADP8870_L4_COMP_CURR_uA(I)  ((I * 255) / 275)
0101 
0102 /*
0103  * L5 comparator current 0..138uA
0104  */
0105 #define ADP8870_L5_COMP_CURR_uA(I)  ((I * 255) / 138)
0106 
0107 struct adp8870_backlight_platform_data {
0108     u8 bl_led_assign;   /* 1 = Backlight 0 = Individual LED */
0109     u8 pwm_assign;      /* 1 = Enables PWM mode */
0110 
0111     u8 bl_fade_in;      /* Backlight Fade-In Timer */
0112     u8 bl_fade_out;     /* Backlight Fade-Out Timer */
0113     u8 bl_fade_law;     /* fade-on/fade-off transfer characteristic */
0114 
0115     u8 en_ambl_sens;    /* 1 = enable ambient light sensor */
0116     u8 abml_filt;       /* Light sensor filter time */
0117 
0118     u8 l1_daylight_max; /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
0119     u8 l1_daylight_dim; /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
0120     u8 l2_bright_max;   /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
0121     u8 l2_bright_dim;   /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
0122     u8 l3_office_max;   /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
0123     u8 l3_office_dim;   /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
0124     u8 l4_indoor_max;   /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
0125     u8 l4_indor_dim;    /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
0126     u8 l5_dark_max;     /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
0127     u8 l5_dark_dim;     /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
0128 
0129     u8 l2_trip;     /* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
0130     u8 l2_hyst;     /* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
0131     u8 l3_trip;     /* use L3_COMP_CURR_uA(I) 0 <= I <= 551 uA */
0132     u8 l3_hyst;     /* use L3_COMP_CURR_uA(I) 0 <= I <= 551 uA */
0133     u8 l4_trip;     /* use L4_COMP_CURR_uA(I) 0 <= I <= 275 uA */
0134     u8 l4_hyst;     /* use L4_COMP_CURR_uA(I) 0 <= I <= 275 uA */
0135     u8 l5_trip;     /* use L5_COMP_CURR_uA(I) 0 <= I <= 138 uA */
0136     u8 l5_hyst;     /* use L6_COMP_CURR_uA(I) 0 <= I <= 138 uA */
0137 
0138     /**
0139      * Independent Current Sinks / LEDS
0140      * Sinks not assigned to the Backlight can be exposed to
0141      * user space using the LEDS CLASS interface
0142      */
0143 
0144     int num_leds;
0145     struct led_info *leds;
0146     u8 led_fade_in;     /* LED Fade-In Timer */
0147     u8 led_fade_out;    /* LED Fade-Out Timer */
0148     u8 led_fade_law;    /* fade-on/fade-off transfer characteristic */
0149     u8 led_on_time;
0150 };
0151 
0152 #endif /* __LINUX_I2C_ADP8870_H */