/* * max8997.h - Driver for the Maxim 8997/8966 * * Copyright (C) 2009-2010 Samsung Electrnoics * MyungJoo Ham <myungjoo.ham@samsung.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * This driver is based on max8998.h * * MAX8997 has PMIC, MUIC, HAPTIC, RTC, FLASH, and Fuel Gauge devices. * Except Fuel Gauge, every device shares the same I2C bus and included in * this mfd driver. Although the fuel gauge is included in the chip, it is * excluded from the driver because a) it has a different I2C bus from * others and b) it can be enabled simply by using MAX17042 driver. */ #ifndef __LINUX_MFD_MAX8998_H #define __LINUX_MFD_MAX8998_H #include <linux/regulator/consumer.h> /* MAX8997/8966 regulator IDs */ enum max8998_regulators { MAX8997_LDO1 = 0, MAX8997_LDO2, MAX8997_LDO3, MAX8997_LDO4, MAX8997_LDO5, MAX8997_LDO6, MAX8997_LDO7, MAX8997_LDO8, MAX8997_LDO9, MAX8997_LDO10, MAX8997_LDO11, MAX8997_LDO12, MAX8997_LDO13, MAX8997_LDO14, MAX8997_LDO15, MAX8997_LDO16, MAX8997_LDO17, MAX8997_LDO18, MAX8997_LDO21, MAX8997_BUCK1, MAX8997_BUCK2, MAX8997_BUCK3, MAX8997_BUCK4, MAX8997_BUCK5, MAX8997_BUCK6, MAX8997_BUCK7, MAX8997_EN32KHZ_AP, MAX8997_EN32KHZ_CP, MAX8997_ENVICHG, MAX8997_ESAFEOUT1, MAX8997_ESAFEOUT2, MAX8997_CHARGER_CV, /* control MBCCV of MBCCTRL3 */ MAX8997_CHARGER, /* charger current, MBCCTRL4 */ MAX8997_CHARGER_TOPOFF, /* MBCCTRL5 */ MAX8997_REG_MAX, }; struct max8997_regulator_data { int id; struct regulator_init_data *initdata; struct device_node *reg_node; }; struct max8997_muic_reg_data { u8 addr; u8 data; }; /** * struct max8997_muic_platform_data * @init_data: array of max8997_muic_reg_data * used for initializing registers of MAX8997 MUIC device * @num_init_data: array size of init_data */ struct max8997_muic_platform_data { struct max8997_muic_reg_data *init_data; int num_init_data; /* Check cable state after certain delay */ int detcable_delay_ms; /* * Default usb/uart path whether UART/USB or AUX_UART/AUX_USB * h/w path of COMP2/COMN1 on CONTROL1 register. */ int path_usb; int path_uart; }; enum max8997_haptic_motor_type { MAX8997_HAPTIC_ERM, MAX8997_HAPTIC_LRA, }; enum max8997_haptic_pulse_mode { MAX8997_EXTERNAL_MODE, MAX8997_INTERNAL_MODE, }; enum max8997_haptic_pwm_divisor { MAX8997_PWM_DIVISOR_32, MAX8997_PWM_DIVISOR_64, MAX8997_PWM_DIVISOR_128, MAX8997_PWM_DIVISOR_256, }; /** * max8997_haptic_platform_data * @pwm_channel_id: channel number of PWM device * valid for MAX8997_EXTERNAL_MODE * @pwm_period: period in nano second for PWM device * valid for MAX8997_EXTERNAL_MODE * @type: motor type * @mode: pulse mode * MAX8997_EXTERNAL_MODE: external PWM device is used to control motor * MAX8997_INTERNAL_MODE: internal pulse generator is used to control motor * @pwm_divisor: divisor for external PWM device * @internal_mode_pattern: internal mode pattern for internal mode * [0 - 3]: valid pattern number * @pattern_cycle: the number of cycles of the waveform * for the internal mode pattern * [0 - 15]: available cycles * @pattern_signal_period: period of the waveform for the internal mode pattern * [0 - 255]: available period */ struct max8997_haptic_platform_data { unsigned int pwm_channel_id; unsigned int pwm_period; enum max8997_haptic_motor_type type; enum max8997_haptic_pulse_mode mode; enum max8997_haptic_pwm_divisor pwm_divisor; unsigned int internal_mode_pattern; unsigned int pattern_cycle; unsigned int pattern_signal_period; }; enum max8997_led_mode { MAX8997_NONE, MAX8997_FLASH_MODE, MAX8997_MOVIE_MODE, MAX8997_FLASH_PIN_CONTROL_MODE, MAX8997_MOVIE_PIN_CONTROL_MODE, }; /** * struct max8997_led_platform_data * The number of LED devices for MAX8997 is two * @mode: LED mode for each LED device * @brightness: initial brightness for each LED device * range: * [0 - 31]: MAX8997_FLASH_MODE and MAX8997_FLASH_PIN_CONTROL_MODE * [0 - 15]: MAX8997_MOVIE_MODE and MAX8997_MOVIE_PIN_CONTROL_MODE */ struct max8997_led_platform_data { enum max8997_led_mode mode[2]; u8 brightness[2]; }; struct max8997_platform_data { /* IRQ */ int ono; /* ---- PMIC ---- */ struct max8997_regulator_data *regulators; int num_regulators; /* * SET1~3 DVS GPIOs control Buck1, 2, and 5 simultaneously. Therefore, * With buckx_gpiodvs enabled, the buckx cannot be controlled * independently. To control buckx (of 1, 2, and 5) independently, * disable buckx_gpiodvs and control with BUCKxDVS1 register. * * When buckx_gpiodvs and bucky_gpiodvs are both enabled, set_voltage * on buckx will change the voltage of bucky at the same time. * */ bool ignore_gpiodvs_side_effect; int buck125_gpios[3]; /* GPIO of [0]SET1, [1]SET2, [2]SET3 */ int buck125_default_idx; /* Default value of SET1, 2, 3 */ unsigned int buck1_voltage[8]; /* buckx_voltage in uV */ bool buck1_gpiodvs; unsigned int buck2_voltage[8]; bool buck2_gpiodvs; unsigned int buck5_voltage[8]; bool buck5_gpiodvs; /* ---- Charger control ---- */ /* eoc stands for 'end of charge' */ int eoc_mA; /* 50 ~ 200mA by 10mA step */ /* charge Full Timeout */ int timeout; /* 0 (no timeout), 5, 6, 7 hours */ /* ---- MUIC ---- */ struct max8997_muic_platform_data *muic_pdata; /* ---- HAPTIC ---- */ struct max8997_haptic_platform_data *haptic_pdata; /* RTC: Not implemented */ /* ---- LED ---- */ struct max8997_led_platform_data *led_pdata; }; #endif /* __LINUX_MFD_MAX8998_H */
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
abx500 | Folder | 0755 |
|
|
arizona | Folder | 0755 |
|
|
da9052 | Folder | 0755 |
|
|
da9055 | Folder | 0755 |
|
|
da9062 | Folder | 0755 |
|
|
da9063 | Folder | 0755 |
|
|
da9150 | Folder | 0755 |
|
|
mt6323 | Folder | 0755 |
|
|
mt6397 | Folder | 0755 |
|
|
pcf50633 | Folder | 0755 |
|
|
samsung | Folder | 0755 |
|
|
syscon | Folder | 0755 |
|
|
wm831x | Folder | 0755 |
|
|
wm8350 | Folder | 0755 |
|
|
wm8994 | Folder | 0755 |
|
|
88pm80x.h | File | 9.99 KB | 0644 |
|
88pm860x.h | File | 13.33 KB | 0644 |
|
aat2870.h | File | 4.54 KB | 0644 |
|
ab3100.h | File | 4.16 KB | 0644 |
|
abx500.h | File | 11.72 KB | 0644 |
|
ac100.h | File | 6.12 KB | 0644 |
|
adp5520.h | File | 8.3 KB | 0644 |
|
altera-a10sr.h | File | 3.42 KB | 0644 |
|
as3711.h | File | 2.9 KB | 0644 |
|
as3722.h | File | 15.11 KB | 0644 |
|
asic3.h | File | 12.22 KB | 0644 |
|
atmel-hlcdc.h | File | 2.57 KB | 0644 |
|
axp20x.h | File | 16.91 KB | 0644 |
|
bcm590xx.h | File | 831 B | 0644 |
|
bd9571mwv.h | File | 3.37 KB | 0644 |
|
core.h | File | 4.03 KB | 0644 |
|
cros_ec.h | File | 10.37 KB | 0644 |
|
cros_ec_commands.h | File | 84.45 KB | 0644 |
|
cros_ec_lpc_mec.h | File | 2.77 KB | 0644 |
|
cros_ec_lpc_reg.h | File | 1.9 KB | 0644 |
|
da8xx-cfgchip.h | File | 7.33 KB | 0644 |
|
da903x.h | File | 7.05 KB | 0644 |
|
davinci_voicecodec.h | File | 3.25 KB | 0644 |
|
db8500-prcmu.h | File | 21.68 KB | 0644 |
|
dbx500-prcmu.h | File | 14.34 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 |
|
hi6421-pmic.h | File | 1.3 KB | 0644 |
|
hi655x-pmic.h | File | 2.03 KB | 0644 |
|
htc-pasic3.h | File | 1.2 KB | 0644 |
|
imx25-tsadc.h | File | 4.86 KB | 0644 |
|
intel_msic.h | File | 15.99 KB | 0644 |
|
intel_soc_pmic.h | File | 1.17 KB | 0644 |
|
intel_soc_pmic_bxtwc.h | File | 2 KB | 0644 |
|
ipaq-micro.h | File | 3.66 KB | 0644 |
|
janz.h | File | 1.03 KB | 0644 |
|
kempld.h | File | 4.16 KB | 0644 |
|
lm3533.h | File | 2.59 KB | 0644 |
|
lp3943.h | File | 2.68 KB | 0644 |
|
lp873x.h | File | 8.69 KB | 0644 |
|
lp87565.h | File | 7.68 KB | 0644 |
|
lp8788-isink.h | File | 1.19 KB | 0644 |
|
lp8788.h | File | 8.84 KB | 0644 |
|
lpc_ich.h | File | 1.23 KB | 0644 |
|
max14577-private.h | File | 15.86 KB | 0644 |
|
max14577.h | File | 2.68 KB | 0644 |
|
max77620.h | File | 10.87 KB | 0644 |
|
max77686-private.h | File | 13.21 KB | 0644 |
|
max77686.h | File | 2.65 KB | 0644 |
|
max77693-common.h | File | 1.27 KB | 0644 |
|
max77693-private.h | File | 17.95 KB | 0644 |
|
max77693.h | File | 2.24 KB | 0644 |
|
max77843-private.h | File | 15.43 KB | 0644 |
|
max8907.h | File | 7.52 KB | 0644 |
|
max8925.h | File | 7.18 KB | 0644 |
|
max8997-private.h | File | 12.43 KB | 0644 |
|
max8997.h | File | 6.04 KB | 0644 |
|
max8998-private.h | File | 5.01 KB | 0644 |
|
max8998.h | File | 3.56 KB | 0644 |
|
mc13783.h | File | 2.83 KB | 0644 |
|
mc13892.h | File | 938 B | 0644 |
|
mc13xxx.h | File | 7.65 KB | 0644 |
|
mcp.h | File | 1.77 KB | 0644 |
|
menelaus.h | File | 1.25 KB | 0644 |
|
motorola-cpcap.h | File | 12.5 KB | 0644 |
|
mxs-lradc.h | File | 6.05 KB | 0644 |
|
palmas.h | File | 149.07 KB | 0644 |
|
qcom_rpm.h | File | 293 B | 0644 |
|
rc5t583.h | File | 9.82 KB | 0644 |
|
rdc321x.h | File | 591 B | 0644 |
|
retu.h | File | 723 B | 0644 |
|
rk808.h | File | 12.51 KB | 0644 |
|
rn5t618.h | File | 7.34 KB | 0644 |
|
rt5033-private.h | File | 7.84 KB | 0644 |
|
rt5033.h | File | 1.21 KB | 0644 |
|
si476x-core.h | File | 15.24 KB | 0644 |
|
si476x-platform.h | File | 6.45 KB | 0644 |
|
si476x-reports.h | File | 4.89 KB | 0644 |
|
sky81452.h | File | 990 B | 0644 |
|
smsc.h | File | 2.85 KB | 0644 |
|
sta2x11-mfd.h | File | 18.72 KB | 0644 |
|
stm32-lptimer.h | File | 1.81 KB | 0644 |
|
stm32-timers.h | File | 3.07 KB | 0644 |
|
stmpe.h | File | 3.38 KB | 0644 |
|
stw481x.h | File | 1.41 KB | 0644 |
|
sun4i-gpadc.h | File | 3.62 KB | 0644 |
|
syscon.h | File | 1.41 KB | 0644 |
|
t7l66xb.h | File | 771 B | 0644 |
|
tc3589x.h | File | 3.91 KB | 0644 |
|
tc6387xb.h | File | 516 B | 0644 |
|
tc6393xb.h | File | 1.51 KB | 0644 |
|
ti-lmu-register.h | File | 7.43 KB | 0644 |
|
ti-lmu.h | File | 1.78 KB | 0644 |
|
ti_am335x_tscadc.h | File | 5.72 KB | 0644 |
|
tmio.h | File | 4.6 KB | 0644 |
|
tps6105x.h | File | 3.03 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 | 4.35 KB | 0644 |
|
tps65217.h | File | 8.24 KB | 0644 |
|
tps65218.h | File | 7.84 KB | 0644 |
|
tps6586x.h | File | 2.71 KB | 0644 |
|
tps65910.h | File | 30.59 KB | 0644 |
|
tps65912.h | File | 9.91 KB | 0644 |
|
tps68470.h | File | 3.33 KB | 0644 |
|
tps80031.h | File | 19.59 KB | 0644 |
|
twl.h | File | 25.58 KB | 0644 |
|
twl4030-audio.h | File | 8.54 KB | 0644 |
|
twl6040.h | File | 7.16 KB | 0644 |
|
ucb1x00.h | File | 6.57 KB | 0644 |
|
viperboard.h | File | 2.95 KB | 0644 |
|
wl1273-core.h | File | 8.3 KB | 0644 |
|
wm8400-audio.h | File | 69.8 KB | 0644 |
|
wm8400-private.h | File | 57.98 KB | 0644 |
|
wm8400.h | File | 1.18 KB | 0644 |
|
wm97xx.h | File | 576 B | 0644 |
|