����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* TI LP8788 MFD Device
*
* Copyright 2012 Texas Instruments
*
* Author: Milo(Woogyom) Kim <milo.kim@ti.com>
*/
#ifndef __MFD_LP8788_H__
#define __MFD_LP8788_H__
#include <linux/gpio.h>
#include <linux/irqdomain.h>
#include <linux/pwm.h>
#include <linux/regmap.h>
#define LP8788_DEV_BUCK "lp8788-buck"
#define LP8788_DEV_DLDO "lp8788-dldo"
#define LP8788_DEV_ALDO "lp8788-aldo"
#define LP8788_DEV_CHARGER "lp8788-charger"
#define LP8788_DEV_RTC "lp8788-rtc"
#define LP8788_DEV_BACKLIGHT "lp8788-backlight"
#define LP8788_DEV_VIBRATOR "lp8788-vibrator"
#define LP8788_DEV_KEYLED "lp8788-keyled"
#define LP8788_DEV_ADC "lp8788-adc"
#define LP8788_NUM_BUCKS 4
#define LP8788_NUM_DLDOS 12
#define LP8788_NUM_ALDOS 10
#define LP8788_NUM_BUCK2_DVS 2
#define LP8788_CHG_IRQ "CHG_IRQ"
#define LP8788_PRSW_IRQ "PRSW_IRQ"
#define LP8788_BATT_IRQ "BATT_IRQ"
#define LP8788_ALM_IRQ "ALARM_IRQ"
enum lp8788_int_id {
/* interrup register 1 : Addr 00h */
LP8788_INT_TSDL,
LP8788_INT_TSDH,
LP8788_INT_UVLO,
LP8788_INT_FLAGMON,
LP8788_INT_PWRON_TIME,
LP8788_INT_PWRON,
LP8788_INT_COMP1,
LP8788_INT_COMP2,
/* interrupt register 2 : Addr 01h */
LP8788_INT_CHG_INPUT_STATE,
LP8788_INT_CHG_STATE,
LP8788_INT_EOC,
LP8788_INT_CHG_RESTART,
LP8788_INT_RESTART_TIMEOUT,
LP8788_INT_FULLCHG_TIMEOUT,
LP8788_INT_PRECHG_TIMEOUT,
/* interrupt register 3 : Addr 02h */
LP8788_INT_RTC_ALARM1 = 17,
LP8788_INT_RTC_ALARM2,
LP8788_INT_ENTER_SYS_SUPPORT,
LP8788_INT_EXIT_SYS_SUPPORT,
LP8788_INT_BATT_LOW,
LP8788_INT_NO_BATT,
LP8788_INT_MAX = 24,
};
enum lp8788_dvs_sel {
DVS_SEL_V0,
DVS_SEL_V1,
DVS_SEL_V2,
DVS_SEL_V3,
};
enum lp8788_ext_ldo_en_id {
EN_ALDO1,
EN_ALDO234,
EN_ALDO5,
EN_ALDO7,
EN_DLDO7,
EN_DLDO911,
EN_LDOS_MAX,
};
enum lp8788_charger_event {
NO_CHARGER,
CHARGER_DETECTED,
};
enum lp8788_bl_ctrl_mode {
LP8788_BL_REGISTER_ONLY,
LP8788_BL_COMB_PWM_BASED, /* PWM + I2C, changed by PWM input */
LP8788_BL_COMB_REGISTER_BASED, /* PWM + I2C, changed by I2C */
};
enum lp8788_bl_dim_mode {
LP8788_DIM_EXPONENTIAL,
LP8788_DIM_LINEAR,
};
enum lp8788_bl_full_scale_current {
LP8788_FULLSCALE_5000uA,
LP8788_FULLSCALE_8500uA,
LP8788_FULLSCALE_1200uA,
LP8788_FULLSCALE_1550uA,
LP8788_FULLSCALE_1900uA,
LP8788_FULLSCALE_2250uA,
LP8788_FULLSCALE_2600uA,
LP8788_FULLSCALE_2950uA,
};
enum lp8788_bl_ramp_step {
LP8788_RAMP_8us,
LP8788_RAMP_1024us,
LP8788_RAMP_2048us,
LP8788_RAMP_4096us,
LP8788_RAMP_8192us,
LP8788_RAMP_16384us,
LP8788_RAMP_32768us,
LP8788_RAMP_65538us,
};
enum lp8788_isink_scale {
LP8788_ISINK_SCALE_100mA,
LP8788_ISINK_SCALE_120mA,
};
enum lp8788_isink_number {
LP8788_ISINK_1,
LP8788_ISINK_2,
LP8788_ISINK_3,
};
enum lp8788_alarm_sel {
LP8788_ALARM_1,
LP8788_ALARM_2,
LP8788_ALARM_MAX,
};
enum lp8788_adc_id {
LPADC_VBATT_5P5,
LPADC_VIN_CHG,
LPADC_IBATT,
LPADC_IC_TEMP,
LPADC_VBATT_6P0,
LPADC_VBATT_5P0,
LPADC_ADC1,
LPADC_ADC2,
LPADC_VDD,
LPADC_VCOIN,
LPADC_VDD_LDO,
LPADC_ADC3,
LPADC_ADC4,
LPADC_MAX,
};
struct lp8788;
/*
* lp8788_buck1_dvs
* @gpio : gpio pin number for dvs control
* @vsel : dvs selector for buck v1 register
*/
struct lp8788_buck1_dvs {
int gpio;
enum lp8788_dvs_sel vsel;
};
/*
* lp8788_buck2_dvs
* @gpio : two gpio pin numbers are used for dvs
* @vsel : dvs selector for buck v2 register
*/
struct lp8788_buck2_dvs {
int gpio[LP8788_NUM_BUCK2_DVS];
enum lp8788_dvs_sel vsel;
};
/*
* struct lp8788_chg_param
* @addr : charging control register address (range : 0x11 ~ 0x1C)
* @val : charging parameter value
*/
struct lp8788_chg_param {
u8 addr;
u8 val;
};
/*
* struct lp8788_charger_platform_data
* @adc_vbatt : adc channel name for battery voltage
* @adc_batt_temp : adc channel name for battery temperature
* @max_vbatt_mv : used for calculating battery capacity
* @chg_params : initial charging parameters
* @num_chg_params : numbers of charging parameters
* @charger_event : the charger event can be reported to the platform side
*/
struct lp8788_charger_platform_data {
const char *adc_vbatt;
const char *adc_batt_temp;
unsigned int max_vbatt_mv;
struct lp8788_chg_param *chg_params;
int num_chg_params;
void (*charger_event) (struct lp8788 *lp,
enum lp8788_charger_event event);
};
/*
* struct lp8788_backlight_platform_data
* @name : backlight driver name. (default: "lcd-backlight")
* @initial_brightness : initial value of backlight brightness
* @bl_mode : brightness control by pwm or lp8788 register
* @dim_mode : dimming mode selection
* @full_scale : full scale current setting
* @rise_time : brightness ramp up step time
* @fall_time : brightness ramp down step time
* @pwm_pol : pwm polarity setting when bl_mode is pwm based
* @period_ns : platform specific pwm period value. unit is nano.
Only valid when bl_mode is LP8788_BL_COMB_PWM_BASED
*/
struct lp8788_backlight_platform_data {
char *name;
int initial_brightness;
enum lp8788_bl_ctrl_mode bl_mode;
enum lp8788_bl_dim_mode dim_mode;
enum lp8788_bl_full_scale_current full_scale;
enum lp8788_bl_ramp_step rise_time;
enum lp8788_bl_ramp_step fall_time;
enum pwm_polarity pwm_pol;
unsigned int period_ns;
};
/*
* struct lp8788_led_platform_data
* @name : led driver name. (default: "keyboard-backlight")
* @scale : current scale
* @num : current sink number
* @iout_code : current output value (Addr 9Ah ~ 9Bh)
*/
struct lp8788_led_platform_data {
char *name;
enum lp8788_isink_scale scale;
enum lp8788_isink_number num;
int iout_code;
};
/*
* struct lp8788_vib_platform_data
* @name : vibrator driver name
* @scale : current scale
* @num : current sink number
* @iout_code : current output value (Addr 9Ah ~ 9Bh)
* @pwm_code : PWM code value (Addr 9Ch ~ 9Eh)
*/
struct lp8788_vib_platform_data {
char *name;
enum lp8788_isink_scale scale;
enum lp8788_isink_number num;
int iout_code;
int pwm_code;
};
/*
* struct lp8788_platform_data
* @init_func : used for initializing registers
* before mfd driver is registered
* @buck_data : regulator initial data for buck
* @dldo_data : regulator initial data for digital ldo
* @aldo_data : regulator initial data for analog ldo
* @buck1_dvs : gpio configurations for buck1 dvs
* @buck2_dvs : gpio configurations for buck2 dvs
* @chg_pdata : platform data for charger driver
* @alarm_sel : rtc alarm selection (1 or 2)
* @bl_pdata : configurable data for backlight driver
* @led_pdata : configurable data for led driver
* @vib_pdata : configurable data for vibrator driver
* @adc_pdata : iio map data for adc driver
*/
struct lp8788_platform_data {
/* general system information */
int (*init_func) (struct lp8788 *lp);
/* regulators */
struct regulator_init_data *buck_data[LP8788_NUM_BUCKS];
struct regulator_init_data *dldo_data[LP8788_NUM_DLDOS];
struct regulator_init_data *aldo_data[LP8788_NUM_ALDOS];
struct lp8788_buck1_dvs *buck1_dvs;
struct lp8788_buck2_dvs *buck2_dvs;
/* charger */
struct lp8788_charger_platform_data *chg_pdata;
/* rtc alarm */
enum lp8788_alarm_sel alarm_sel;
/* backlight */
struct lp8788_backlight_platform_data *bl_pdata;
/* current sinks */
struct lp8788_led_platform_data *led_pdata;
struct lp8788_vib_platform_data *vib_pdata;
/* adc iio map data */
struct iio_map *adc_pdata;
};
/*
* struct lp8788
* @dev : parent device pointer
* @regmap : used for i2c communcation on accessing registers
* @irqdm : interrupt domain for handling nested interrupt
* @irq : pin number of IRQ_N
* @pdata : lp8788 platform specific data
*/
struct lp8788 {
struct device *dev;
struct regmap *regmap;
struct irq_domain *irqdm;
int irq;
struct lp8788_platform_data *pdata;
};
int lp8788_irq_init(struct lp8788 *lp, int chip_irq);
void lp8788_irq_exit(struct lp8788 *lp);
int lp8788_read_byte(struct lp8788 *lp, u8 reg, u8 *data);
int lp8788_read_multi_bytes(struct lp8788 *lp, u8 reg, u8 *data, size_t count);
int lp8788_write_byte(struct lp8788 *lp, u8 reg, u8 data);
int lp8788_update_bits(struct lp8788 *lp, u8 reg, u8 mask, u8 data);
#endif
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| abx500 | Folder | 0755 |
|
|
| arizona | Folder | 0755 |
|
|
| atc260x | Folder | 0755 |
|
|
| da9052 | Folder | 0755 |
|
|
| da9055 | Folder | 0755 |
|
|
| da9062 | Folder | 0755 |
|
|
| da9063 | Folder | 0755 |
|
|
| da9150 | Folder | 0755 |
|
|
| madera | Folder | 0755 |
|
|
| mt6323 | Folder | 0755 |
|
|
| mt6358 | Folder | 0755 |
|
|
| mt6359 | Folder | 0755 |
|
|
| mt6359p | Folder | 0755 |
|
|
| mt6397 | Folder | 0755 |
|
|
| pcf50633 | Folder | 0755 |
|
|
| samsung | Folder | 0755 |
|
|
| syscon | Folder | 0755 |
|
|
| wcd934x | Folder | 0755 |
|
|
| wm831x | Folder | 0755 |
|
|
| wm8350 | Folder | 0755 |
|
|
| wm8994 | Folder | 0755 |
|
|
| 88pm80x.h | File | 9.84 KB | 0644 |
|
| 88pm860x.h | File | 13.19 KB | 0644 |
|
| aat2870.h | File | 3.92 KB | 0644 |
|
| abx500.h | File | 2.34 KB | 0644 |
|
| ac100.h | File | 5.98 KB | 0644 |
|
| adp5520.h | File | 8.31 KB | 0644 |
|
| altera-a10sr.h | File | 2.89 KB | 0644 |
|
| altera-sysmgr.h | File | 725 B | 0644 |
|
| as3711.h | File | 2.74 KB | 0644 |
|
| as3722.h | File | 14.53 KB | 0644 |
|
| asic3.h | File | 12.08 KB | 0644 |
|
| atmel-hlcdc.h | File | 2.04 KB | 0644 |
|
| axp20x.h | File | 16.7 KB | 0644 |
|
| bcm2835-pm.h | File | 235 B | 0644 |
|
| bcm590xx.h | File | 618 B | 0644 |
|
| bd9571mwv.h | File | 3.45 KB | 0644 |
|
| core.h | File | 4.65 KB | 0644 |
|
| cs42l43-regs.h | File | 45.72 KB | 0644 |
|
| cs42l43.h | File | 2.21 KB | 0644 |
|
| da8xx-cfgchip.h | File | 6.88 KB | 0644 |
|
| da903x.h | File | 7.05 KB | 0644 |
|
| davinci_voicecodec.h | File | 2.6 KB | 0644 |
|
| db8500-prcmu.h | File | 21.33 KB | 0644 |
|
| dbx500-prcmu.h | File | 13.87 KB | 0644 |
|
| dln2.h | File | 3.53 KB | 0644 |
|
| dm355evm_msp.h | File | 2.81 KB | 0644 |
|
| ds1wm.h | File | 817 B | 0644 |
|
| ezx-pcap.h | File | 7.75 KB | 0644 |
|
| gsc.h | File | 1.78 KB | 0644 |
|
| hi6421-pmic.h | File | 1.16 KB | 0644 |
|
| hi6421-spmi-pmic.h | File | 623 B | 0644 |
|
| hi655x-pmic.h | File | 1.89 KB | 0644 |
|
| htc-pasic3.h | File | 1.2 KB | 0644 |
|
| imx25-tsadc.h | File | 4.86 KB | 0644 |
|
| ingenic-tcu.h | File | 1.71 KB | 0644 |
|
| intel-m10-bmc.h | File | 4.79 KB | 0644 |
|
| intel_pmc_bxt.h | File | 1.51 KB | 0644 |
|
| intel_soc_pmic.h | File | 1.65 KB | 0644 |
|
| intel_soc_pmic_bxtwc.h | File | 1.6 KB | 0644 |
|
| intel_soc_pmic_mrfld.h | File | 2.23 KB | 0644 |
|
| ipaq-micro.h | File | 3.66 KB | 0644 |
|
| iqs62x.h | File | 2.73 KB | 0644 |
|
| janz.h | File | 846 B | 0644 |
|
| kempld.h | File | 4.03 KB | 0644 |
|
| khadas-mcu.h | File | 3.46 KB | 0644 |
|
| lm3533.h | File | 2.38 KB | 0644 |
|
| lochnagar.h | File | 1.59 KB | 0644 |
|
| lochnagar1_regs.h | File | 7.71 KB | 0644 |
|
| lochnagar2_regs.h | File | 15.19 KB | 0644 |
|
| lp3943.h | File | 2.54 KB | 0644 |
|
| lp873x.h | File | 8.29 KB | 0644 |
|
| lp87565.h | File | 7.41 KB | 0644 |
|
| lp8788-isink.h | File | 1.04 KB | 0644 |
|
| lp8788.h | File | 8.23 KB | 0644 |
|
| lpc_ich.h | File | 655 B | 0644 |
|
| max14577-private.h | File | 15.41 KB | 0644 |
|
| max14577.h | File | 2.23 KB | 0644 |
|
| max77620.h | File | 10.71 KB | 0644 |
|
| max77650.h | File | 1.84 KB | 0644 |
|
| max77686-private.h | File | 12.54 KB | 0644 |
|
| max77686.h | File | 1.99 KB | 0644 |
|
| max77693-common.h | File | 1.06 KB | 0644 |
|
| max77693-private.h | File | 17.29 KB | 0644 |
|
| max77693.h | File | 1.58 KB | 0644 |
|
| max77843-private.h | File | 15.22 KB | 0644 |
|
| max8907.h | File | 7.38 KB | 0644 |
|
| max8925.h | File | 7.04 KB | 0644 |
|
| max8997-private.h | File | 11.77 KB | 0644 |
|
| max8997.h | File | 5.38 KB | 0644 |
|
| max8998-private.h | File | 4.35 KB | 0644 |
|
| max8998.h | File | 2.91 KB | 0644 |
|
| mc13783.h | File | 2.69 KB | 0644 |
|
| mc13892.h | File | 792 B | 0644 |
|
| mc13xxx.h | File | 7.59 KB | 0644 |
|
| mcp.h | File | 1.61 KB | 0644 |
|
| menelaus.h | File | 1.25 KB | 0644 |
|
| motorola-cpcap.h | File | 12.35 KB | 0644 |
|
| mp2629.h | File | 422 B | 0644 |
|
| mxs-lradc.h | File | 5.6 KB | 0644 |
|
| ntxec.h | File | 907 B | 0644 |
|
| palmas.h | File | 148.81 KB | 0644 |
|
| qcom_rpm.h | File | 293 B | 0644 |
|
| rave-sp.h | File | 1.41 KB | 0644 |
|
| rc5t583.h | File | 9.28 KB | 0644 |
|
| rdc321x.h | File | 591 B | 0644 |
|
| retu.h | File | 723 B | 0644 |
|
| rk808.h | File | 19.42 KB | 0644 |
|
| rn5t618.h | File | 7.66 KB | 0644 |
|
| rohm-bd70528.h | File | 10.82 KB | 0644 |
|
| rohm-bd71815.h | File | 15.24 KB | 0644 |
|
| rohm-bd71828.h | File | 12.78 KB | 0644 |
|
| rohm-bd718x7.h | File | 8.83 KB | 0644 |
|
| rohm-bd957x.h | File | 4.26 KB | 0644 |
|
| rohm-generic.h | File | 2.99 KB | 0644 |
|
| rohm-shared.h | File | 631 B | 0644 |
|
| rt5033-private.h | File | 7.74 KB | 0644 |
|
| rt5033.h | File | 1.07 KB | 0644 |
|
| sc27xx-pmic.h | File | 228 B | 0644 |
|
| si476x-core.h | File | 14.84 KB | 0644 |
|
| si476x-platform.h | File | 6.04 KB | 0644 |
|
| si476x-reports.h | File | 4.49 KB | 0644 |
|
| sky81452.h | File | 354 B | 0644 |
|
| sta2x11-mfd.h | File | 18.13 KB | 0644 |
|
| stm32-lptimer.h | File | 1.91 KB | 0644 |
|
| stm32-timers.h | File | 5.46 KB | 0644 |
|
| stmfx.h | File | 3.96 KB | 0644 |
|
| stmpe.h | File | 3.99 KB | 0644 |
|
| stpmic1.h | File | 5.62 KB | 0644 |
|
| stw481x.h | File | 1.39 KB | 0644 |
|
| sun4i-gpadc.h | File | 3.48 KB | 0644 |
|
| syscon.h | File | 1.83 KB | 0644 |
|
| t7l66xb.h | File | 668 B | 0644 |
|
| tc3589x.h | File | 4.03 KB | 0644 |
|
| tc6387xb.h | File | 516 B | 0644 |
|
| tc6393xb.h | File | 1.37 KB | 0644 |
|
| ti-lmu-register.h | File | 5.53 KB | 0644 |
|
| ti-lmu.h | File | 1.81 KB | 0644 |
|
| ti_am335x_tscadc.h | File | 5.79 KB | 0644 |
|
| tmio.h | File | 3.78 KB | 0644 |
|
| tps6105x.h | File | 3.01 KB | 0644 |
|
| tps65010.h | File | 6.53 KB | 0644 |
|
| tps6507x.h | File | 4.94 KB | 0644 |
|
| tps65086.h | File | 3.5 KB | 0644 |
|
| tps65090.h | File | 3.72 KB | 0644 |
|
| tps65217.h | File | 7.84 KB | 0644 |
|
| tps65218.h | File | 8.03 KB | 0644 |
|
| tps65219.h | File | 11.57 KB | 0644 |
|
| tps6586x.h | File | 2.74 KB | 0644 |
|
| tps65910.h | File | 29.39 KB | 0644 |
|
| tps65912.h | File | 9.91 KB | 0644 |
|
| tps6594.h | File | 35.83 KB | 0644 |
|
| tps68470.h | File | 2.93 KB | 0644 |
|
| twl.h | File | 24.9 KB | 0644 |
|
| twl4030-audio.h | File | 7.94 KB | 0644 |
|
| twl6040.h | File | 6.56 KB | 0644 |
|
| ucb1x00.h | File | 6.41 KB | 0644 |
|
| viperboard.h | File | 2.74 KB | 0644 |
|
| wl1273-core.h | File | 7.7 KB | 0644 |
|
| wm8400-audio.h | File | 69.16 KB | 0644 |
|
| wm8400-private.h | File | 57.12 KB | 0644 |
|
| wm8400.h | File | 561 B | 0644 |
|
| wm97xx.h | File | 369 B | 0644 |
|