404

[ Avaa Bypassed ]




Upload:

Command:

botdev@18.116.239.148: ~ $
/*
 * Functions to access MAX8907 power management chip.
 *
 * Copyright (C) 2010 Gyungoh Yoo <jack.yoo@maxim-ic.com>
 * Copyright (C) 2012, NVIDIA CORPORATION. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#ifndef __LINUX_MFD_MAX8907_H
#define __LINUX_MFD_MAX8907_H

#include <linux/mutex.h>
#include <linux/pm.h>

#define MAX8907_GEN_I2C_ADDR		(0x78 >> 1)
#define MAX8907_ADC_I2C_ADDR		(0x8e >> 1)
#define MAX8907_RTC_I2C_ADDR		(0xd0 >> 1)

/* MAX8907 register map */
#define MAX8907_REG_SYSENSEL		0x00
#define MAX8907_REG_ON_OFF_IRQ1		0x01
#define MAX8907_REG_ON_OFF_IRQ1_MASK	0x02
#define MAX8907_REG_ON_OFF_STAT		0x03
#define MAX8907_REG_SDCTL1		0x04
#define MAX8907_REG_SDSEQCNT1		0x05
#define MAX8907_REG_SDV1		0x06
#define MAX8907_REG_SDCTL2		0x07
#define MAX8907_REG_SDSEQCNT2		0x08
#define MAX8907_REG_SDV2		0x09
#define MAX8907_REG_SDCTL3		0x0A
#define MAX8907_REG_SDSEQCNT3		0x0B
#define MAX8907_REG_SDV3		0x0C
#define MAX8907_REG_ON_OFF_IRQ2		0x0D
#define MAX8907_REG_ON_OFF_IRQ2_MASK	0x0E
#define MAX8907_REG_RESET_CNFG		0x0F
#define MAX8907_REG_LDOCTL16		0x10
#define MAX8907_REG_LDOSEQCNT16		0x11
#define MAX8907_REG_LDO16VOUT		0x12
#define MAX8907_REG_SDBYSEQCNT		0x13
#define MAX8907_REG_LDOCTL17		0x14
#define MAX8907_REG_LDOSEQCNT17		0x15
#define MAX8907_REG_LDO17VOUT		0x16
#define MAX8907_REG_LDOCTL1		0x18
#define MAX8907_REG_LDOSEQCNT1		0x19
#define MAX8907_REG_LDO1VOUT		0x1A
#define MAX8907_REG_LDOCTL2		0x1C
#define MAX8907_REG_LDOSEQCNT2		0x1D
#define MAX8907_REG_LDO2VOUT		0x1E
#define MAX8907_REG_LDOCTL3		0x20
#define MAX8907_REG_LDOSEQCNT3		0x21
#define MAX8907_REG_LDO3VOUT		0x22
#define MAX8907_REG_LDOCTL4		0x24
#define MAX8907_REG_LDOSEQCNT4		0x25
#define MAX8907_REG_LDO4VOUT		0x26
#define MAX8907_REG_LDOCTL5		0x28
#define MAX8907_REG_LDOSEQCNT5		0x29
#define MAX8907_REG_LDO5VOUT		0x2A
#define MAX8907_REG_LDOCTL6		0x2C
#define MAX8907_REG_LDOSEQCNT6		0x2D
#define MAX8907_REG_LDO6VOUT		0x2E
#define MAX8907_REG_LDOCTL7		0x30
#define MAX8907_REG_LDOSEQCNT7		0x31
#define MAX8907_REG_LDO7VOUT		0x32
#define MAX8907_REG_LDOCTL8		0x34
#define MAX8907_REG_LDOSEQCNT8		0x35
#define MAX8907_REG_LDO8VOUT		0x36
#define MAX8907_REG_LDOCTL9		0x38
#define MAX8907_REG_LDOSEQCNT9		0x39
#define MAX8907_REG_LDO9VOUT		0x3A
#define MAX8907_REG_LDOCTL10		0x3C
#define MAX8907_REG_LDOSEQCNT10		0x3D
#define MAX8907_REG_LDO10VOUT		0x3E
#define MAX8907_REG_LDOCTL11		0x40
#define MAX8907_REG_LDOSEQCNT11		0x41
#define MAX8907_REG_LDO11VOUT		0x42
#define MAX8907_REG_LDOCTL12		0x44
#define MAX8907_REG_LDOSEQCNT12		0x45
#define MAX8907_REG_LDO12VOUT		0x46
#define MAX8907_REG_LDOCTL13		0x48
#define MAX8907_REG_LDOSEQCNT13		0x49
#define MAX8907_REG_LDO13VOUT		0x4A
#define MAX8907_REG_LDOCTL14		0x4C
#define MAX8907_REG_LDOSEQCNT14		0x4D
#define MAX8907_REG_LDO14VOUT		0x4E
#define MAX8907_REG_LDOCTL15		0x50
#define MAX8907_REG_LDOSEQCNT15		0x51
#define MAX8907_REG_LDO15VOUT		0x52
#define MAX8907_REG_OUT5VEN		0x54
#define MAX8907_REG_OUT5VSEQ		0x55
#define MAX8907_REG_OUT33VEN		0x58
#define MAX8907_REG_OUT33VSEQ		0x59
#define MAX8907_REG_LDOCTL19		0x5C
#define MAX8907_REG_LDOSEQCNT19		0x5D
#define MAX8907_REG_LDO19VOUT		0x5E
#define MAX8907_REG_LBCNFG		0x60
#define MAX8907_REG_SEQ1CNFG		0x64
#define MAX8907_REG_SEQ2CNFG		0x65
#define MAX8907_REG_SEQ3CNFG		0x66
#define MAX8907_REG_SEQ4CNFG		0x67
#define MAX8907_REG_SEQ5CNFG		0x68
#define MAX8907_REG_SEQ6CNFG		0x69
#define MAX8907_REG_SEQ7CNFG		0x6A
#define MAX8907_REG_LDOCTL18		0x72
#define MAX8907_REG_LDOSEQCNT18		0x73
#define MAX8907_REG_LDO18VOUT		0x74
#define MAX8907_REG_BBAT_CNFG		0x78
#define MAX8907_REG_CHG_CNTL1		0x7C
#define MAX8907_REG_CHG_CNTL2		0x7D
#define MAX8907_REG_CHG_IRQ1		0x7E
#define MAX8907_REG_CHG_IRQ2		0x7F
#define MAX8907_REG_CHG_IRQ1_MASK	0x80
#define MAX8907_REG_CHG_IRQ2_MASK	0x81
#define MAX8907_REG_CHG_STAT		0x82
#define MAX8907_REG_WLED_MODE_CNTL	0x84
#define MAX8907_REG_ILED_CNTL		0x84
#define MAX8907_REG_II1RR		0x8E
#define MAX8907_REG_II2RR		0x8F
#define MAX8907_REG_LDOCTL20		0x9C
#define MAX8907_REG_LDOSEQCNT20		0x9D
#define MAX8907_REG_LDO20VOUT		0x9E

/* RTC register map */
#define MAX8907_REG_RTC_SEC		0x00
#define MAX8907_REG_RTC_MIN		0x01
#define MAX8907_REG_RTC_HOURS		0x02
#define MAX8907_REG_RTC_WEEKDAY		0x03
#define MAX8907_REG_RTC_DATE		0x04
#define MAX8907_REG_RTC_MONTH		0x05
#define MAX8907_REG_RTC_YEAR1		0x06
#define MAX8907_REG_RTC_YEAR2		0x07
#define MAX8907_REG_ALARM0_SEC		0x08
#define MAX8907_REG_ALARM0_MIN		0x09
#define MAX8907_REG_ALARM0_HOURS	0x0A
#define MAX8907_REG_ALARM0_WEEKDAY	0x0B
#define MAX8907_REG_ALARM0_DATE		0x0C
#define MAX8907_REG_ALARM0_MONTH	0x0D
#define MAX8907_REG_ALARM0_YEAR1	0x0E
#define MAX8907_REG_ALARM0_YEAR2	0x0F
#define MAX8907_REG_ALARM1_SEC		0x10
#define MAX8907_REG_ALARM1_MIN		0x11
#define MAX8907_REG_ALARM1_HOURS	0x12
#define MAX8907_REG_ALARM1_WEEKDAY	0x13
#define MAX8907_REG_ALARM1_DATE		0x14
#define MAX8907_REG_ALARM1_MONTH	0x15
#define MAX8907_REG_ALARM1_YEAR1	0x16
#define MAX8907_REG_ALARM1_YEAR2	0x17
#define MAX8907_REG_ALARM0_CNTL		0x18
#define MAX8907_REG_ALARM1_CNTL		0x19
#define MAX8907_REG_RTC_STATUS		0x1A
#define MAX8907_REG_RTC_CNTL		0x1B
#define MAX8907_REG_RTC_IRQ		0x1C
#define MAX8907_REG_RTC_IRQ_MASK	0x1D
#define MAX8907_REG_MPL_CNTL		0x1E

/* ADC and Touch Screen Controller register map */
#define MAX8907_CTL			0
#define MAX8907_SEQCNT			1
#define MAX8907_VOUT			2

/* mask bit fields */
#define MAX8907_MASK_LDO_SEQ		0x1C
#define MAX8907_MASK_LDO_EN		0x01
#define MAX8907_MASK_VBBATTCV		0x03
#define MAX8907_MASK_OUT5V_VINEN	0x10
#define MAX8907_MASK_OUT5V_ENSRC	0x0E
#define MAX8907_MASK_OUT5V_EN		0x01
#define MAX8907_MASK_POWER_OFF		0x40

/* Regulator IDs */
#define MAX8907_MBATT	0
#define MAX8907_SD1	1
#define MAX8907_SD2	2
#define MAX8907_SD3	3
#define MAX8907_LDO1	4
#define MAX8907_LDO2	5
#define MAX8907_LDO3	6
#define MAX8907_LDO4	7
#define MAX8907_LDO5	8
#define MAX8907_LDO6	9
#define MAX8907_LDO7	10
#define MAX8907_LDO8	11
#define MAX8907_LDO9	12
#define MAX8907_LDO10	13
#define MAX8907_LDO11	14
#define MAX8907_LDO12	15
#define MAX8907_LDO13	16
#define MAX8907_LDO14	17
#define MAX8907_LDO15	18
#define MAX8907_LDO16	19
#define MAX8907_LDO17	20
#define MAX8907_LDO18	21
#define MAX8907_LDO19	22
#define MAX8907_LDO20	23
#define MAX8907_OUT5V	24
#define MAX8907_OUT33V	25
#define MAX8907_BBAT	26
#define MAX8907_SDBY	27
#define MAX8907_VRTC	28
#define MAX8907_NUM_REGULATORS (MAX8907_VRTC + 1)

/* IRQ definitions */
enum {
	MAX8907_IRQ_VCHG_DC_OVP = 0,
	MAX8907_IRQ_VCHG_DC_F,
	MAX8907_IRQ_VCHG_DC_R,
	MAX8907_IRQ_VCHG_THM_OK_R,
	MAX8907_IRQ_VCHG_THM_OK_F,
	MAX8907_IRQ_VCHG_MBATTLOW_F,
	MAX8907_IRQ_VCHG_MBATTLOW_R,
	MAX8907_IRQ_VCHG_RST,
	MAX8907_IRQ_VCHG_DONE,
	MAX8907_IRQ_VCHG_TOPOFF,
	MAX8907_IRQ_VCHG_TMR_FAULT,

	MAX8907_IRQ_GPM_RSTIN = 0,
	MAX8907_IRQ_GPM_MPL,
	MAX8907_IRQ_GPM_SW_3SEC,
	MAX8907_IRQ_GPM_EXTON_F,
	MAX8907_IRQ_GPM_EXTON_R,
	MAX8907_IRQ_GPM_SW_1SEC,
	MAX8907_IRQ_GPM_SW_F,
	MAX8907_IRQ_GPM_SW_R,
	MAX8907_IRQ_GPM_SYSCKEN_F,
	MAX8907_IRQ_GPM_SYSCKEN_R,

	MAX8907_IRQ_RTC_ALARM1 = 0,
	MAX8907_IRQ_RTC_ALARM0,
};

struct max8907_platform_data {
	struct regulator_init_data *init_data[MAX8907_NUM_REGULATORS];
	bool pm_off;
};

struct regmap_irq_chips_data;

struct max8907 {
	struct device			*dev;
	struct mutex			irq_lock;
	struct i2c_client		*i2c_gen;
	struct i2c_client		*i2c_rtc;
	struct regmap			*regmap_gen;
	struct regmap			*regmap_rtc;
	struct regmap_irq_chip_data	*irqc_chg;
	struct regmap_irq_chip_data	*irqc_on_off;
	struct regmap_irq_chip_data	*irqc_rtc;
};

#endif

Filemanager

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