Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
88pm860x.h File Reference
#include <linux/interrupt.h>

Go to the source code of this file.

Data Structures

struct  pm860x_chip
 
struct  pm860x_backlight_pdata
 
struct  pm860x_led_pdata
 
struct  pm860x_rtc_pdata
 
struct  pm860x_touch_pdata
 
struct  pm860x_power_pdata
 
struct  pm860x_platform_data
 

Macros

#define MFD_NAME_SIZE   (40)
 
#define PM8606_DCM_BOOST   (0x00)
 
#define PM8606_PWM   (0x01)
 
#define PM8607_MISC2   (0x42)
 
#define PM8607_POWER_UP_LOG   (0x3F)
 
#define PM8607_CCNT   (0x47)
 
#define PM8607_CHG_CTRL1   (0x48)
 
#define PM8607_CHG_CTRL2   (0x49)
 
#define PM8607_CHG_CTRL3   (0x4A)
 
#define PM8607_CHG_CTRL4   (0x4B)
 
#define PM8607_CHG_CTRL5   (0x4C)
 
#define PM8607_CHG_CTRL6   (0x4D)
 
#define PM8607_CHG_CTRL7   (0x4E)
 
#define PM8606_WLED1A   (0x02)
 
#define PM8606_WLED1B   (0x03)
 
#define PM8606_WLED2A   (0x04)
 
#define PM8606_WLED2B   (0x05)
 
#define PM8606_WLED3A   (0x06)
 
#define PM8606_WLED3B   (0x07)
 
#define PM8606_RGB2A   (0x08)
 
#define PM8606_RGB2B   (0x09)
 
#define PM8606_RGB2C   (0x0A)
 
#define PM8606_RGB2D   (0x0B)
 
#define PM8606_RGB1A   (0x0C)
 
#define PM8606_RGB1B   (0x0D)
 
#define PM8606_RGB1C   (0x0E)
 
#define PM8606_RGB1D   (0x0F)
 
#define PM8606_PREREGULATORA   (0x10)
 
#define PM8606_PREREGULATORB   (0x11)
 
#define PM8606_VIBRATORA   (0x12)
 
#define PM8606_VIBRATORB   (0x13)
 
#define PM8606_VCHG   (0x14)
 
#define PM8606_VSYS   (0x15)
 
#define PM8606_MISC   (0x16)
 
#define PM8606_CHIP_ID   (0x17)
 
#define PM8606_STATUS   (0x18)
 
#define PM8606_FLAGS   (0x19)
 
#define PM8606_PROTECTA   (0x1A)
 
#define PM8606_PROTECTB   (0x1B)
 
#define PM8606_PROTECTC   (0x1C)
 
#define PM8606_DCM_500MA   (0x0) /* current limit */
 
#define PM8606_DCM_750MA   (0x1)
 
#define PM8606_DCM_1000MA   (0x2)
 
#define PM8606_DCM_1250MA   (0x3)
 
#define PM8606_DCM_250MV   (0x0 << 2)
 
#define PM8606_DCM_300MV   (0x1 << 2)
 
#define PM8606_DCM_350MV   (0x2 << 2)
 
#define PM8606_DCM_400MV   (0x3 << 2)
 
#define PM8606_PWM_31200HZ   (0x0)
 
#define PM8606_PWM_15600HZ   (0x1)
 
#define PM8606_PWM_7800HZ   (0x2)
 
#define PM8606_PWM_3900HZ   (0x3)
 
#define PM8606_PWM_1950HZ   (0x4)
 
#define PM8606_PWM_976HZ   (0x5)
 
#define PM8606_PWM_488HZ   (0x6)
 
#define PM8606_PWM_244HZ   (0x7)
 
#define PM8606_PWM_FREQ_MASK   (0x7)
 
#define PM8606_WLED_ON   (1 << 0)
 
#define PM8606_WLED_CURRENT(x)   ((x & 0x1F) << 1)
 
#define PM8606_LED_CURRENT(x)   (((x >> 2) & 0x07) << 5)
 
#define PM8606_VSYS_EN   (1 << 1)
 
#define PM8606_MISC_OSC_EN   (1 << 4)
 
#define PM8607_VERSION_MASK   (0xF0) /* 8607 chip ID mask */
 
#define PM8607_STATUS_1   (0x01)
 
#define PM8607_STATUS_2   (0x02)
 
#define PM8607_INT_STATUS1   (0x03)
 
#define PM8607_INT_STATUS2   (0x04)
 
#define PM8607_INT_STATUS3   (0x05)
 
#define PM8607_INT_MASK_1   (0x06)
 
#define PM8607_INT_MASK_2   (0x07)
 
#define PM8607_INT_MASK_3   (0x08)
 
#define PM8607_LDO1   (0x10)
 
#define PM8607_LDO2   (0x11)
 
#define PM8607_LDO3   (0x12)
 
#define PM8607_LDO4   (0x13)
 
#define PM8607_LDO5   (0x14)
 
#define PM8607_LDO6   (0x15)
 
#define PM8607_LDO7   (0x16)
 
#define PM8607_LDO8   (0x17)
 
#define PM8607_LDO9   (0x18)
 
#define PM8607_LDO10   (0x19)
 
#define PM8607_LDO12   (0x1A)
 
#define PM8607_LDO14   (0x1B)
 
#define PM8607_SLEEP_MODE1   (0x1C)
 
#define PM8607_SLEEP_MODE2   (0x1D)
 
#define PM8607_SLEEP_MODE3   (0x1E)
 
#define PM8607_SLEEP_MODE4   (0x1F)
 
#define PM8607_GO   (0x20)
 
#define PM8607_SLEEP_BUCK1   (0x21)
 
#define PM8607_SLEEP_BUCK2   (0x22)
 
#define PM8607_SLEEP_BUCK3   (0x23)
 
#define PM8607_BUCK1   (0x24)
 
#define PM8607_BUCK2   (0x25)
 
#define PM8607_BUCK3   (0x26)
 
#define PM8607_BUCK_CONTROLS   (0x27)
 
#define PM8607_SUPPLIES_EN11   (0x2B)
 
#define PM8607_SUPPLIES_EN12   (0x2C)
 
#define PM8607_GROUP1   (0x2D)
 
#define PM8607_GROUP2   (0x2E)
 
#define PM8607_GROUP3   (0x2F)
 
#define PM8607_GROUP4   (0x30)
 
#define PM8607_GROUP5   (0x31)
 
#define PM8607_GROUP6   (0x32)
 
#define PM8607_SUPPLIES_EN21   (0x33)
 
#define PM8607_SUPPLIES_EN22   (0x34)
 
#define PM8607_VIBRATOR_SET   (0x28)
 
#define PM8607_VIBRATOR_PWM   (0x29)
 
#define PM8607_GP_BIAS1   (0x4F)
 
#define PM8607_MEAS_EN1   (0x50)
 
#define PM8607_MEAS_EN2   (0x51)
 
#define PM8607_MEAS_EN3   (0x52)
 
#define PM8607_MEAS_OFF_TIME1   (0x53)
 
#define PM8607_MEAS_OFF_TIME2   (0x54)
 
#define PM8607_TSI_PREBIAS   (0x55) /* prebias time */
 
#define PM8607_PD_PREBIAS   (0x56) /* prebias time */
 
#define PM8607_GPADC_MISC1   (0x57)
 
#define PM8607_MEAS_EN1_VBAT   (1 << 0)
 
#define PM8607_MEAS_EN1_VCHG   (1 << 1)
 
#define PM8607_MEAS_EN1_VSYS   (1 << 2)
 
#define PM8607_MEAS_EN1_TINT   (1 << 3)
 
#define PM8607_MEAS_EN1_RFTMP   (1 << 4)
 
#define PM8607_MEAS_EN1_TBAT   (1 << 5)
 
#define PM8607_MEAS_EN1_GPADC2   (1 << 6)
 
#define PM8607_MEAS_EN1_GPADC3   (1 << 7)
 
#define PM8607_GP_BIAS2   (0x5A)
 
#define PM8607_VBAT_LOWTH   (0x5B)
 
#define PM8607_VCHG_LOWTH   (0x5C)
 
#define PM8607_VSYS_LOWTH   (0x5D)
 
#define PM8607_TINT_LOWTH   (0x5E)
 
#define PM8607_GPADC0_LOWTH   (0x5F)
 
#define PM8607_GPADC1_LOWTH   (0x60)
 
#define PM8607_GPADC2_LOWTH   (0x61)
 
#define PM8607_GPADC3_LOWTH   (0x62)
 
#define PM8607_VBAT_HIGHTH   (0x63)
 
#define PM8607_VCHG_HIGHTH   (0x64)
 
#define PM8607_VSYS_HIGHTH   (0x65)
 
#define PM8607_TINT_HIGHTH   (0x66)
 
#define PM8607_GPADC0_HIGHTH   (0x67)
 
#define PM8607_GPADC1_HIGHTH   (0x68)
 
#define PM8607_GPADC2_HIGHTH   (0x69)
 
#define PM8607_GPADC3_HIGHTH   (0x6A)
 
#define PM8607_IBAT_MEAS1   (0x6B)
 
#define PM8607_IBAT_MEAS2   (0x6C)
 
#define PM8607_VBAT_MEAS1   (0x6D)
 
#define PM8607_VBAT_MEAS2   (0x6E)
 
#define PM8607_VCHG_MEAS1   (0x6F)
 
#define PM8607_VCHG_MEAS2   (0x70)
 
#define PM8607_VSYS_MEAS1   (0x71)
 
#define PM8607_VSYS_MEAS2   (0x72)
 
#define PM8607_TINT_MEAS1   (0x73)
 
#define PM8607_TINT_MEAS2   (0x74)
 
#define PM8607_GPADC0_MEAS1   (0x75)
 
#define PM8607_GPADC0_MEAS2   (0x76)
 
#define PM8607_GPADC1_MEAS1   (0x77)
 
#define PM8607_GPADC1_MEAS2   (0x78)
 
#define PM8607_GPADC2_MEAS1   (0x79)
 
#define PM8607_GPADC2_MEAS2   (0x7A)
 
#define PM8607_GPADC3_MEAS1   (0x7B)
 
#define PM8607_GPADC3_MEAS2   (0x7C)
 
#define PM8607_CCNT_MEAS1   (0x95)
 
#define PM8607_CCNT_MEAS2   (0x96)
 
#define PM8607_VBAT_AVG   (0x97)
 
#define PM8607_VCHG_AVG   (0x98)
 
#define PM8607_VSYS_AVG   (0x99)
 
#define PM8607_VBAT_MIN   (0x9A)
 
#define PM8607_VCHG_MIN   (0x9B)
 
#define PM8607_VSYS_MIN   (0x9C)
 
#define PM8607_VBAT_MAX   (0x9D)
 
#define PM8607_VCHG_MAX   (0x9E)
 
#define PM8607_VSYS_MAX   (0x9F)
 
#define PM8607_GPADC_MISC2   (0x59)
 
#define PM8607_GPADC0_GP_BIAS_A0   (1 << 0)
 
#define PM8607_GPADC1_GP_BIAS_A1   (1 << 1)
 
#define PM8607_GPADC2_GP_BIAS_A2   (1 << 2)
 
#define PM8607_GPADC3_GP_BIAS_A3   (1 << 3)
 
#define PM8607_GPADC2_GP_BIAS_OUT2   (1 << 6)
 
#define PM8607_RTC1   (0xA0)
 
#define PM8607_RTC_COUNTER1   (0xA1)
 
#define PM8607_RTC_COUNTER2   (0xA2)
 
#define PM8607_RTC_COUNTER3   (0xA3)
 
#define PM8607_RTC_COUNTER4   (0xA4)
 
#define PM8607_RTC_EXPIRE1   (0xA5)
 
#define PM8607_RTC_EXPIRE2   (0xA6)
 
#define PM8607_RTC_EXPIRE3   (0xA7)
 
#define PM8607_RTC_EXPIRE4   (0xA8)
 
#define PM8607_RTC_TRIM1   (0xA9)
 
#define PM8607_RTC_TRIM2   (0xAA)
 
#define PM8607_RTC_TRIM3   (0xAB)
 
#define PM8607_RTC_TRIM4   (0xAC)
 
#define PM8607_RTC_MISC1   (0xAD)
 
#define PM8607_RTC_MISC2   (0xAE)
 
#define PM8607_RTC_MISC3   (0xAF)
 
#define PM8607_CHIP_ID   (0x00)
 
#define PM8607_B0_MISC1   (0x0C)
 
#define PM8607_LDO1   (0x10)
 
#define PM8607_DVC3   (0x26)
 
#define PM8607_A1_MISC1   (0x40)
 
#define PM8607_STATUS_CC   (1 << 3)
 
#define PM8607_STATUS_PEN   (1 << 4)
 
#define PM8607_STATUS_HEADSET   (1 << 5)
 
#define PM8607_STATUS_HOOK   (1 << 6)
 
#define PM8607_STATUS_MICIN   (1 << 7)
 
#define PM8607_STATUS_ONKEY   (1 << 8)
 
#define PM8607_STATUS_EXTON   (1 << 9)
 
#define PM8607_STATUS_CHG   (1 << 10)
 
#define PM8607_STATUS_BAT   (1 << 11)
 
#define PM8607_STATUS_VBUS   (1 << 12)
 
#define PM8607_STATUS_OV   (1 << 13)
 
#define PM8607_BUCK3_DOUBLE   (1 << 6)
 
#define PM8607_A1_MISC1_PI2C   (1 << 0)
 
#define PM8607_B0_MISC1_INV_INT   (1 << 0)
 
#define PM8607_B0_MISC1_INT_CLEAR   (1 << 1)
 
#define PM8607_B0_MISC1_INT_MASK   (1 << 2)
 
#define PM8607_B0_MISC1_PI2C   (1 << 3)
 
#define PM8607_B0_MISC1_RESET   (1 << 6)
 
#define PM8607_GPADC_EN   (1 << 0)
 
#define PM8607_GPADC_PREBIAS_MASK   (3 << 1)
 
#define PM8607_GPADC_SLOT_CYCLE_MASK   (3 << 3) /* slow mode */
 
#define PM8607_GPADC_OFF_SCALE_MASK   (3 << 5) /* GP sleep mode */
 
#define PM8607_GPADC_SW_CAL_MASK   (1 << 7)
 
#define PM8607_PD_PREBIAS_MASK   (0x1F << 0)
 
#define PM8607_PD_PRECHG_MASK   (7 << 5)
 
#define PM8606_REF_GP_OSC_OFF   0
 
#define PM8606_REF_GP_OSC_ON   1
 
#define PM8606_REF_GP_OSC_UNKNOWN   2
 

Enumerations

enum  { CHIP_INVALID = 0, CHIP_PM8606, CHIP_PM8607, CHIP_MAX }
 
enum  {
  PM8606_ID_INVALID, PM8606_ID_BACKLIGHT, PM8606_ID_LED, PM8606_ID_VIBRATOR,
  PM8606_ID_TOUCH, PM8606_ID_SOUND, PM8606_ID_CHARGER, PM8606_ID_MAX
}
 
enum  {
  PM8607_ID_BUCK1 = 0, PM8607_ID_BUCK2, PM8607_ID_BUCK3, PM8607_ID_LDO1,
  PM8607_ID_LDO2, PM8607_ID_LDO3, PM8607_ID_LDO4, PM8607_ID_LDO5,
  PM8607_ID_LDO6, PM8607_ID_LDO7, PM8607_ID_LDO8, PM8607_ID_LDO9,
  PM8607_ID_LDO10, PM8607_ID_LDO11, PM8607_ID_LDO12, PM8607_ID_LDO13,
  PM8607_ID_LDO14, PM8607_ID_LDO15, PM8606_ID_PREG, PM8607_ID_RG_MAX
}
 
enum  pm8606_ref_gp_and_osc_clients {
  REF_GP_NO_CLIENTS = 0, WLED1_DUTY = (1<<0), WLED2_DUTY = (1<<1), WLED3_DUTY = (1<<2),
  RGB1_ENABLE = (1<<3), RGB2_ENABLE = (1<<4), LDO_VBR_EN = (1<<5), REF_GP_MAX_CLIENT = 0xFFFF
}
 
enum  {
  PM8607_IRQ_ONKEY, PM8607_IRQ_EXTON, PM8607_IRQ_CHG, PM8607_IRQ_BAT,
  PM8607_IRQ_RTC, PM8607_IRQ_CC, PM8607_IRQ_VBAT, PM8607_IRQ_VCHG,
  PM8607_IRQ_VSYS, PM8607_IRQ_TINT, PM8607_IRQ_GPADC0, PM8607_IRQ_GPADC1,
  PM8607_IRQ_GPADC2, PM8607_IRQ_GPADC3, PM8607_IRQ_AUDIO_SHORT, PM8607_IRQ_PEN,
  PM8607_IRQ_HEADSET, PM8607_IRQ_HOOK, PM8607_IRQ_MICIN, PM8607_IRQ_CHG_FAIL,
  PM8607_IRQ_CHG_DONE, PM8607_IRQ_CHG_FAULT
}
 
enum  { PM8607_CHIP_A0 = 0x40, PM8607_CHIP_A1 = 0x41, PM8607_CHIP_B0 = 0x48 }
 
enum  { GI2C_PORT = 0, PI2C_PORT }
 

Functions

int pm8606_osc_enable (struct pm860x_chip *, unsigned short)
 
int pm8606_osc_disable (struct pm860x_chip *, unsigned short)
 
int pm860x_reg_read (struct i2c_client *, int)
 
int pm860x_reg_write (struct i2c_client *, int, unsigned char)
 
int pm860x_bulk_read (struct i2c_client *, int, int, unsigned char *)
 
int pm860x_bulk_write (struct i2c_client *, int, int, unsigned char *)
 
int pm860x_set_bits (struct i2c_client *, int, unsigned char, unsigned char)
 
int pm860x_page_reg_read (struct i2c_client *, int)
 
int pm860x_page_reg_write (struct i2c_client *, int, unsigned char)
 
int pm860x_page_bulk_read (struct i2c_client *, int, int, unsigned char *)
 
int pm860x_page_bulk_write (struct i2c_client *, int, int, unsigned char *)
 
int pm860x_page_set_bits (struct i2c_client *, int, unsigned char, unsigned char)
 

Macro Definition Documentation

#define MFD_NAME_SIZE   (40)

Definition at line 17 of file 88pm860x.h.

#define PM8606_CHIP_ID   (0x17)

Definition at line 82 of file 88pm860x.h.

#define PM8606_DCM_1000MA   (0x2)

Definition at line 92 of file 88pm860x.h.

#define PM8606_DCM_1250MA   (0x3)

Definition at line 93 of file 88pm860x.h.

#define PM8606_DCM_250MV   (0x0 << 2)

Definition at line 94 of file 88pm860x.h.

#define PM8606_DCM_300MV   (0x1 << 2)

Definition at line 95 of file 88pm860x.h.

#define PM8606_DCM_350MV   (0x2 << 2)

Definition at line 96 of file 88pm860x.h.

#define PM8606_DCM_400MV   (0x3 << 2)

Definition at line 97 of file 88pm860x.h.

#define PM8606_DCM_500MA   (0x0) /* current limit */

Definition at line 90 of file 88pm860x.h.

#define PM8606_DCM_750MA   (0x1)

Definition at line 91 of file 88pm860x.h.

#define PM8606_DCM_BOOST   (0x00)

Definition at line 39 of file 88pm860x.h.

#define PM8606_FLAGS   (0x19)

Definition at line 84 of file 88pm860x.h.

#define PM8606_LED_CURRENT (   x)    (((x >> 2) & 0x07) << 5)

Definition at line 112 of file 88pm860x.h.

#define PM8606_MISC   (0x16)

Definition at line 81 of file 88pm860x.h.

#define PM8606_MISC_OSC_EN   (1 << 4)

Definition at line 116 of file 88pm860x.h.

#define PM8606_PREREGULATORA   (0x10)

Definition at line 75 of file 88pm860x.h.

#define PM8606_PREREGULATORB   (0x11)

Definition at line 76 of file 88pm860x.h.

#define PM8606_PROTECTA   (0x1A)

Definition at line 85 of file 88pm860x.h.

#define PM8606_PROTECTB   (0x1B)

Definition at line 86 of file 88pm860x.h.

#define PM8606_PROTECTC   (0x1C)

Definition at line 87 of file 88pm860x.h.

#define PM8606_PWM   (0x01)

Definition at line 40 of file 88pm860x.h.

#define PM8606_PWM_15600HZ   (0x1)

Definition at line 100 of file 88pm860x.h.

#define PM8606_PWM_1950HZ   (0x4)

Definition at line 103 of file 88pm860x.h.

#define PM8606_PWM_244HZ   (0x7)

Definition at line 106 of file 88pm860x.h.

#define PM8606_PWM_31200HZ   (0x0)

Definition at line 99 of file 88pm860x.h.

#define PM8606_PWM_3900HZ   (0x3)

Definition at line 102 of file 88pm860x.h.

#define PM8606_PWM_488HZ   (0x6)

Definition at line 105 of file 88pm860x.h.

#define PM8606_PWM_7800HZ   (0x2)

Definition at line 101 of file 88pm860x.h.

#define PM8606_PWM_976HZ   (0x5)

Definition at line 104 of file 88pm860x.h.

#define PM8606_PWM_FREQ_MASK   (0x7)

Definition at line 107 of file 88pm860x.h.

#define PM8606_REF_GP_OSC_OFF   0

Definition at line 331 of file 88pm860x.h.

#define PM8606_REF_GP_OSC_ON   1

Definition at line 332 of file 88pm860x.h.

#define PM8606_REF_GP_OSC_UNKNOWN   2

Definition at line 333 of file 88pm860x.h.

#define PM8606_RGB1A   (0x0C)

Definition at line 70 of file 88pm860x.h.

#define PM8606_RGB1B   (0x0D)

Definition at line 71 of file 88pm860x.h.

#define PM8606_RGB1C   (0x0E)

Definition at line 72 of file 88pm860x.h.

#define PM8606_RGB1D   (0x0F)

Definition at line 73 of file 88pm860x.h.

#define PM8606_RGB2A   (0x08)

Definition at line 66 of file 88pm860x.h.

#define PM8606_RGB2B   (0x09)

Definition at line 67 of file 88pm860x.h.

#define PM8606_RGB2C   (0x0A)

Definition at line 68 of file 88pm860x.h.

#define PM8606_RGB2D   (0x0B)

Definition at line 69 of file 88pm860x.h.

#define PM8606_STATUS   (0x18)

Definition at line 83 of file 88pm860x.h.

#define PM8606_VCHG   (0x14)

Definition at line 79 of file 88pm860x.h.

#define PM8606_VIBRATORA   (0x12)

Definition at line 77 of file 88pm860x.h.

#define PM8606_VIBRATORB   (0x13)

Definition at line 78 of file 88pm860x.h.

#define PM8606_VSYS   (0x15)

Definition at line 80 of file 88pm860x.h.

#define PM8606_VSYS_EN   (1 << 1)

Definition at line 114 of file 88pm860x.h.

#define PM8606_WLED1A   (0x02)

Definition at line 58 of file 88pm860x.h.

#define PM8606_WLED1B   (0x03)

Definition at line 59 of file 88pm860x.h.

#define PM8606_WLED2A   (0x04)

Definition at line 60 of file 88pm860x.h.

#define PM8606_WLED2B   (0x05)

Definition at line 61 of file 88pm860x.h.

#define PM8606_WLED3A   (0x06)

Definition at line 62 of file 88pm860x.h.

#define PM8606_WLED3B   (0x07)

Definition at line 63 of file 88pm860x.h.

#define PM8606_WLED_CURRENT (   x)    ((x & 0x1F) << 1)

Definition at line 110 of file 88pm860x.h.

#define PM8606_WLED_ON   (1 << 0)

Definition at line 109 of file 88pm860x.h.

#define PM8607_A1_MISC1   (0x40)

Definition at line 295 of file 88pm860x.h.

#define PM8607_A1_MISC1_PI2C   (1 << 0)

Definition at line 314 of file 88pm860x.h.

#define PM8607_B0_MISC1   (0x0C)

Definition at line 292 of file 88pm860x.h.

#define PM8607_B0_MISC1_INT_CLEAR   (1 << 1)

Definition at line 316 of file 88pm860x.h.

#define PM8607_B0_MISC1_INT_MASK   (1 << 2)

Definition at line 317 of file 88pm860x.h.

#define PM8607_B0_MISC1_INV_INT   (1 << 0)

Definition at line 315 of file 88pm860x.h.

#define PM8607_B0_MISC1_PI2C   (1 << 3)

Definition at line 318 of file 88pm860x.h.

#define PM8607_B0_MISC1_RESET   (1 << 6)

Definition at line 319 of file 88pm860x.h.

#define PM8607_BUCK1   (0x24)

Definition at line 177 of file 88pm860x.h.

#define PM8607_BUCK2   (0x25)

Definition at line 178 of file 88pm860x.h.

#define PM8607_BUCK3   (0x26)

Definition at line 179 of file 88pm860x.h.

#define PM8607_BUCK3_DOUBLE   (1 << 6)

Definition at line 311 of file 88pm860x.h.

#define PM8607_BUCK_CONTROLS   (0x27)

Definition at line 180 of file 88pm860x.h.

#define PM8607_CCNT   (0x47)

Definition at line 48 of file 88pm860x.h.

#define PM8607_CCNT_MEAS1   (0x95)

Definition at line 253 of file 88pm860x.h.

#define PM8607_CCNT_MEAS2   (0x96)

Definition at line 254 of file 88pm860x.h.

#define PM8607_CHG_CTRL1   (0x48)

Definition at line 49 of file 88pm860x.h.

#define PM8607_CHG_CTRL2   (0x49)

Definition at line 50 of file 88pm860x.h.

#define PM8607_CHG_CTRL3   (0x4A)

Definition at line 51 of file 88pm860x.h.

#define PM8607_CHG_CTRL4   (0x4B)

Definition at line 52 of file 88pm860x.h.

#define PM8607_CHG_CTRL5   (0x4C)

Definition at line 53 of file 88pm860x.h.

#define PM8607_CHG_CTRL6   (0x4D)

Definition at line 54 of file 88pm860x.h.

#define PM8607_CHG_CTRL7   (0x4E)

Definition at line 55 of file 88pm860x.h.

#define PM8607_CHIP_ID   (0x00)

Definition at line 291 of file 88pm860x.h.

#define PM8607_DVC3   (0x26)

Definition at line 294 of file 88pm860x.h.

#define PM8607_GO   (0x20)

Definition at line 173 of file 88pm860x.h.

#define PM8607_GP_BIAS1   (0x4F)

Definition at line 197 of file 88pm860x.h.

#define PM8607_GP_BIAS2   (0x5A)

Definition at line 218 of file 88pm860x.h.

#define PM8607_GPADC0_GP_BIAS_A0   (1 << 0)

Definition at line 266 of file 88pm860x.h.

#define PM8607_GPADC0_HIGHTH   (0x67)

Definition at line 231 of file 88pm860x.h.

#define PM8607_GPADC0_LOWTH   (0x5F)

Definition at line 223 of file 88pm860x.h.

#define PM8607_GPADC0_MEAS1   (0x75)

Definition at line 245 of file 88pm860x.h.

#define PM8607_GPADC0_MEAS2   (0x76)

Definition at line 246 of file 88pm860x.h.

#define PM8607_GPADC1_GP_BIAS_A1   (1 << 1)

Definition at line 267 of file 88pm860x.h.

#define PM8607_GPADC1_HIGHTH   (0x68)

Definition at line 232 of file 88pm860x.h.

#define PM8607_GPADC1_LOWTH   (0x60)

Definition at line 224 of file 88pm860x.h.

#define PM8607_GPADC1_MEAS1   (0x77)

Definition at line 247 of file 88pm860x.h.

#define PM8607_GPADC1_MEAS2   (0x78)

Definition at line 248 of file 88pm860x.h.

#define PM8607_GPADC2_GP_BIAS_A2   (1 << 2)

Definition at line 268 of file 88pm860x.h.

#define PM8607_GPADC2_GP_BIAS_OUT2   (1 << 6)

Definition at line 270 of file 88pm860x.h.

#define PM8607_GPADC2_HIGHTH   (0x69)

Definition at line 233 of file 88pm860x.h.

#define PM8607_GPADC2_LOWTH   (0x61)

Definition at line 225 of file 88pm860x.h.

#define PM8607_GPADC2_MEAS1   (0x79)

Definition at line 249 of file 88pm860x.h.

#define PM8607_GPADC2_MEAS2   (0x7A)

Definition at line 250 of file 88pm860x.h.

#define PM8607_GPADC3_GP_BIAS_A3   (1 << 3)

Definition at line 269 of file 88pm860x.h.

#define PM8607_GPADC3_HIGHTH   (0x6A)

Definition at line 234 of file 88pm860x.h.

#define PM8607_GPADC3_LOWTH   (0x62)

Definition at line 226 of file 88pm860x.h.

#define PM8607_GPADC3_MEAS1   (0x7B)

Definition at line 251 of file 88pm860x.h.

#define PM8607_GPADC3_MEAS2   (0x7C)

Definition at line 252 of file 88pm860x.h.

#define PM8607_GPADC_EN   (1 << 0)

Definition at line 322 of file 88pm860x.h.

#define PM8607_GPADC_MISC1   (0x57)

Definition at line 205 of file 88pm860x.h.

#define PM8607_GPADC_MISC2   (0x59)

Definition at line 265 of file 88pm860x.h.

#define PM8607_GPADC_OFF_SCALE_MASK   (3 << 5) /* GP sleep mode */

Definition at line 325 of file 88pm860x.h.

#define PM8607_GPADC_PREBIAS_MASK   (3 << 1)

Definition at line 323 of file 88pm860x.h.

#define PM8607_GPADC_SLOT_CYCLE_MASK   (3 << 3) /* slow mode */

Definition at line 324 of file 88pm860x.h.

#define PM8607_GPADC_SW_CAL_MASK   (1 << 7)

Definition at line 326 of file 88pm860x.h.

#define PM8607_GROUP1   (0x2D)

Definition at line 183 of file 88pm860x.h.

#define PM8607_GROUP2   (0x2E)

Definition at line 184 of file 88pm860x.h.

#define PM8607_GROUP3   (0x2F)

Definition at line 185 of file 88pm860x.h.

#define PM8607_GROUP4   (0x30)

Definition at line 186 of file 88pm860x.h.

#define PM8607_GROUP5   (0x31)

Definition at line 187 of file 88pm860x.h.

#define PM8607_GROUP6   (0x32)

Definition at line 188 of file 88pm860x.h.

#define PM8607_IBAT_MEAS1   (0x6B)

Definition at line 235 of file 88pm860x.h.

#define PM8607_IBAT_MEAS2   (0x6C)

Definition at line 236 of file 88pm860x.h.

#define PM8607_INT_MASK_1   (0x06)

Definition at line 152 of file 88pm860x.h.

#define PM8607_INT_MASK_2   (0x07)

Definition at line 153 of file 88pm860x.h.

#define PM8607_INT_MASK_3   (0x08)

Definition at line 154 of file 88pm860x.h.

#define PM8607_INT_STATUS1   (0x03)

Definition at line 149 of file 88pm860x.h.

#define PM8607_INT_STATUS2   (0x04)

Definition at line 150 of file 88pm860x.h.

#define PM8607_INT_STATUS3   (0x05)

Definition at line 151 of file 88pm860x.h.

#define PM8607_LDO1   (0x10)

Definition at line 293 of file 88pm860x.h.

#define PM8607_LDO1   (0x10)

Definition at line 293 of file 88pm860x.h.

#define PM8607_LDO10   (0x19)

Definition at line 166 of file 88pm860x.h.

#define PM8607_LDO12   (0x1A)

Definition at line 167 of file 88pm860x.h.

#define PM8607_LDO14   (0x1B)

Definition at line 168 of file 88pm860x.h.

#define PM8607_LDO2   (0x11)

Definition at line 158 of file 88pm860x.h.

#define PM8607_LDO3   (0x12)

Definition at line 159 of file 88pm860x.h.

#define PM8607_LDO4   (0x13)

Definition at line 160 of file 88pm860x.h.

#define PM8607_LDO5   (0x14)

Definition at line 161 of file 88pm860x.h.

#define PM8607_LDO6   (0x15)

Definition at line 162 of file 88pm860x.h.

#define PM8607_LDO7   (0x16)

Definition at line 163 of file 88pm860x.h.

#define PM8607_LDO8   (0x17)

Definition at line 164 of file 88pm860x.h.

#define PM8607_LDO9   (0x18)

Definition at line 165 of file 88pm860x.h.

#define PM8607_MEAS_EN1   (0x50)

Definition at line 198 of file 88pm860x.h.

#define PM8607_MEAS_EN1_GPADC2   (1 << 6)

Definition at line 214 of file 88pm860x.h.

#define PM8607_MEAS_EN1_GPADC3   (1 << 7)

Definition at line 215 of file 88pm860x.h.

#define PM8607_MEAS_EN1_RFTMP   (1 << 4)

Definition at line 212 of file 88pm860x.h.

#define PM8607_MEAS_EN1_TBAT   (1 << 5)

Definition at line 213 of file 88pm860x.h.

#define PM8607_MEAS_EN1_TINT   (1 << 3)

Definition at line 211 of file 88pm860x.h.

#define PM8607_MEAS_EN1_VBAT   (1 << 0)

Definition at line 208 of file 88pm860x.h.

#define PM8607_MEAS_EN1_VCHG   (1 << 1)

Definition at line 209 of file 88pm860x.h.

#define PM8607_MEAS_EN1_VSYS   (1 << 2)

Definition at line 210 of file 88pm860x.h.

#define PM8607_MEAS_EN2   (0x51)

Definition at line 199 of file 88pm860x.h.

#define PM8607_MEAS_EN3   (0x52)

Definition at line 200 of file 88pm860x.h.

#define PM8607_MEAS_OFF_TIME1   (0x53)

Definition at line 201 of file 88pm860x.h.

#define PM8607_MEAS_OFF_TIME2   (0x54)

Definition at line 202 of file 88pm860x.h.

#define PM8607_MISC2   (0x42)

Definition at line 42 of file 88pm860x.h.

#define PM8607_PD_PREBIAS   (0x56) /* prebias time */

Definition at line 204 of file 88pm860x.h.

#define PM8607_PD_PREBIAS_MASK   (0x1F << 0)

Definition at line 328 of file 88pm860x.h.

#define PM8607_PD_PRECHG_MASK   (7 << 5)

Definition at line 329 of file 88pm860x.h.

#define PM8607_POWER_UP_LOG   (0x3F)

Definition at line 45 of file 88pm860x.h.

#define PM8607_RTC1   (0xA0)

Definition at line 273 of file 88pm860x.h.

#define PM8607_RTC_COUNTER1   (0xA1)

Definition at line 274 of file 88pm860x.h.

#define PM8607_RTC_COUNTER2   (0xA2)

Definition at line 275 of file 88pm860x.h.

#define PM8607_RTC_COUNTER3   (0xA3)

Definition at line 276 of file 88pm860x.h.

#define PM8607_RTC_COUNTER4   (0xA4)

Definition at line 277 of file 88pm860x.h.

#define PM8607_RTC_EXPIRE1   (0xA5)

Definition at line 278 of file 88pm860x.h.

#define PM8607_RTC_EXPIRE2   (0xA6)

Definition at line 279 of file 88pm860x.h.

#define PM8607_RTC_EXPIRE3   (0xA7)

Definition at line 280 of file 88pm860x.h.

#define PM8607_RTC_EXPIRE4   (0xA8)

Definition at line 281 of file 88pm860x.h.

#define PM8607_RTC_MISC1   (0xAD)

Definition at line 286 of file 88pm860x.h.

#define PM8607_RTC_MISC2   (0xAE)

Definition at line 287 of file 88pm860x.h.

#define PM8607_RTC_MISC3   (0xAF)

Definition at line 288 of file 88pm860x.h.

#define PM8607_RTC_TRIM1   (0xA9)

Definition at line 282 of file 88pm860x.h.

#define PM8607_RTC_TRIM2   (0xAA)

Definition at line 283 of file 88pm860x.h.

#define PM8607_RTC_TRIM3   (0xAB)

Definition at line 284 of file 88pm860x.h.

#define PM8607_RTC_TRIM4   (0xAC)

Definition at line 285 of file 88pm860x.h.

#define PM8607_SLEEP_BUCK1   (0x21)

Definition at line 174 of file 88pm860x.h.

#define PM8607_SLEEP_BUCK2   (0x22)

Definition at line 175 of file 88pm860x.h.

#define PM8607_SLEEP_BUCK3   (0x23)

Definition at line 176 of file 88pm860x.h.

#define PM8607_SLEEP_MODE1   (0x1C)

Definition at line 169 of file 88pm860x.h.

#define PM8607_SLEEP_MODE2   (0x1D)

Definition at line 170 of file 88pm860x.h.

#define PM8607_SLEEP_MODE3   (0x1E)

Definition at line 171 of file 88pm860x.h.

#define PM8607_SLEEP_MODE4   (0x1F)

Definition at line 172 of file 88pm860x.h.

#define PM8607_STATUS_1   (0x01)

Definition at line 147 of file 88pm860x.h.

#define PM8607_STATUS_2   (0x02)

Definition at line 148 of file 88pm860x.h.

#define PM8607_STATUS_BAT   (1 << 11)

Definition at line 306 of file 88pm860x.h.

#define PM8607_STATUS_CC   (1 << 3)

Definition at line 298 of file 88pm860x.h.

#define PM8607_STATUS_CHG   (1 << 10)

Definition at line 305 of file 88pm860x.h.

#define PM8607_STATUS_EXTON   (1 << 9)

Definition at line 304 of file 88pm860x.h.

#define PM8607_STATUS_HEADSET   (1 << 5)

Definition at line 300 of file 88pm860x.h.

#define PM8607_STATUS_HOOK   (1 << 6)

Definition at line 301 of file 88pm860x.h.

#define PM8607_STATUS_MICIN   (1 << 7)

Definition at line 302 of file 88pm860x.h.

#define PM8607_STATUS_ONKEY   (1 << 8)

Definition at line 303 of file 88pm860x.h.

#define PM8607_STATUS_OV   (1 << 13)

Definition at line 308 of file 88pm860x.h.

#define PM8607_STATUS_PEN   (1 << 4)

Definition at line 299 of file 88pm860x.h.

#define PM8607_STATUS_VBUS   (1 << 12)

Definition at line 307 of file 88pm860x.h.

#define PM8607_SUPPLIES_EN11   (0x2B)

Definition at line 181 of file 88pm860x.h.

#define PM8607_SUPPLIES_EN12   (0x2C)

Definition at line 182 of file 88pm860x.h.

#define PM8607_SUPPLIES_EN21   (0x33)

Definition at line 189 of file 88pm860x.h.

#define PM8607_SUPPLIES_EN22   (0x34)

Definition at line 190 of file 88pm860x.h.

#define PM8607_TINT_HIGHTH   (0x66)

Definition at line 230 of file 88pm860x.h.

#define PM8607_TINT_LOWTH   (0x5E)

Definition at line 222 of file 88pm860x.h.

#define PM8607_TINT_MEAS1   (0x73)

Definition at line 243 of file 88pm860x.h.

#define PM8607_TINT_MEAS2   (0x74)

Definition at line 244 of file 88pm860x.h.

#define PM8607_TSI_PREBIAS   (0x55) /* prebias time */

Definition at line 203 of file 88pm860x.h.

#define PM8607_VBAT_AVG   (0x97)

Definition at line 255 of file 88pm860x.h.

#define PM8607_VBAT_HIGHTH   (0x63)

Definition at line 227 of file 88pm860x.h.

#define PM8607_VBAT_LOWTH   (0x5B)

Definition at line 219 of file 88pm860x.h.

#define PM8607_VBAT_MAX   (0x9D)

Definition at line 261 of file 88pm860x.h.

#define PM8607_VBAT_MEAS1   (0x6D)

Definition at line 237 of file 88pm860x.h.

#define PM8607_VBAT_MEAS2   (0x6E)

Definition at line 238 of file 88pm860x.h.

#define PM8607_VBAT_MIN   (0x9A)

Definition at line 258 of file 88pm860x.h.

#define PM8607_VCHG_AVG   (0x98)

Definition at line 256 of file 88pm860x.h.

#define PM8607_VCHG_HIGHTH   (0x64)

Definition at line 228 of file 88pm860x.h.

#define PM8607_VCHG_LOWTH   (0x5C)

Definition at line 220 of file 88pm860x.h.

#define PM8607_VCHG_MAX   (0x9E)

Definition at line 262 of file 88pm860x.h.

#define PM8607_VCHG_MEAS1   (0x6F)

Definition at line 239 of file 88pm860x.h.

#define PM8607_VCHG_MEAS2   (0x70)

Definition at line 240 of file 88pm860x.h.

#define PM8607_VCHG_MIN   (0x9B)

Definition at line 259 of file 88pm860x.h.

#define PM8607_VERSION_MASK   (0xF0) /* 8607 chip ID mask */

Definition at line 144 of file 88pm860x.h.

#define PM8607_VIBRATOR_PWM   (0x29)

Definition at line 194 of file 88pm860x.h.

#define PM8607_VIBRATOR_SET   (0x28)

Definition at line 193 of file 88pm860x.h.

#define PM8607_VSYS_AVG   (0x99)

Definition at line 257 of file 88pm860x.h.

#define PM8607_VSYS_HIGHTH   (0x65)

Definition at line 229 of file 88pm860x.h.

#define PM8607_VSYS_LOWTH   (0x5D)

Definition at line 221 of file 88pm860x.h.

#define PM8607_VSYS_MAX   (0x9F)

Definition at line 263 of file 88pm860x.h.

#define PM8607_VSYS_MEAS1   (0x71)

Definition at line 241 of file 88pm860x.h.

#define PM8607_VSYS_MEAS2   (0x72)

Definition at line 242 of file 88pm860x.h.

#define PM8607_VSYS_MIN   (0x9C)

Definition at line 260 of file 88pm860x.h.

Enumeration Type Documentation

anonymous enum
Enumerator:
CHIP_INVALID 
CHIP_PM8606 
CHIP_PM8607 
CHIP_MAX 

Definition at line 19 of file 88pm860x.h.

anonymous enum
Enumerator:
PM8606_ID_INVALID 
PM8606_ID_BACKLIGHT 
PM8606_ID_LED 
PM8606_ID_VIBRATOR 
PM8606_ID_TOUCH 
PM8606_ID_SOUND 
PM8606_ID_CHARGER 
PM8606_ID_MAX 

Definition at line 26 of file 88pm860x.h.

anonymous enum
Enumerator:
PM8607_ID_BUCK1 
PM8607_ID_BUCK2 
PM8607_ID_BUCK3 
PM8607_ID_LDO1 
PM8607_ID_LDO2 
PM8607_ID_LDO3 
PM8607_ID_LDO4 
PM8607_ID_LDO5 
PM8607_ID_LDO6 
PM8607_ID_LDO7 
PM8607_ID_LDO8 
PM8607_ID_LDO9 
PM8607_ID_LDO10 
PM8607_ID_LDO11 
PM8607_ID_LDO12 
PM8607_ID_LDO13 
PM8607_ID_LDO14 
PM8607_ID_LDO15 
PM8606_ID_PREG 
PM8607_ID_RG_MAX 

Definition at line 118 of file 88pm860x.h.

anonymous enum
Enumerator:
PM8607_IRQ_ONKEY 
PM8607_IRQ_EXTON 
PM8607_IRQ_CHG 
PM8607_IRQ_BAT 
PM8607_IRQ_RTC 
PM8607_IRQ_CC 
PM8607_IRQ_VBAT 
PM8607_IRQ_VCHG 
PM8607_IRQ_VSYS 
PM8607_IRQ_TINT 
PM8607_IRQ_GPADC0 
PM8607_IRQ_GPADC1 
PM8607_IRQ_GPADC2 
PM8607_IRQ_GPADC3 
PM8607_IRQ_AUDIO_SHORT 
PM8607_IRQ_PEN 
PM8607_IRQ_HEADSET 
PM8607_IRQ_HOOK 
PM8607_IRQ_MICIN 
PM8607_IRQ_CHG_FAIL 
PM8607_IRQ_CHG_DONE 
PM8607_IRQ_CHG_FAULT 

Definition at line 348 of file 88pm860x.h.

anonymous enum
Enumerator:
PM8607_CHIP_A0 
PM8607_CHIP_A1 
PM8607_CHIP_B0 

Definition at line 373 of file 88pm860x.h.

anonymous enum
Enumerator:
GI2C_PORT 
PI2C_PORT 

Definition at line 401 of file 88pm860x.h.

Enumerator:
REF_GP_NO_CLIENTS 
WLED1_DUTY 
WLED2_DUTY 
WLED3_DUTY 
RGB1_ENABLE 
RGB2_ENABLE 
LDO_VBR_EN 
REF_GP_MAX_CLIENT 

Definition at line 336 of file 88pm860x.h.

Function Documentation

int pm8606_osc_disable ( struct pm860x_chip ,
unsigned  short 
)

Definition at line 694 of file 88pm860x-core.c.

int pm8606_osc_enable ( struct pm860x_chip ,
unsigned  short 
)

Definition at line 653 of file 88pm860x-core.c.

int pm860x_bulk_read ( struct i2c_client ,
int  ,
int  ,
unsigned char  
)

Definition at line 46 of file 88pm860x-i2c.c.

int pm860x_bulk_write ( struct i2c_client ,
int  ,
int  ,
unsigned char  
)

Definition at line 59 of file 88pm860x-i2c.c.

int pm860x_page_bulk_read ( struct i2c_client ,
int  ,
int  ,
unsigned char  
)

Definition at line 180 of file 88pm860x-i2c.c.

int pm860x_page_bulk_write ( struct i2c_client ,
int  ,
int  ,
unsigned char  
)

Definition at line 198 of file 88pm860x-i2c.c.

int pm860x_page_reg_read ( struct i2c_client ,
int   
)

Definition at line 142 of file 88pm860x-i2c.c.

int pm860x_page_reg_write ( struct i2c_client ,
int  ,
unsigned  char 
)

Definition at line 162 of file 88pm860x-i2c.c.

int pm860x_page_set_bits ( struct i2c_client ,
int  ,
unsigned  char,
unsigned  char 
)

Definition at line 217 of file 88pm860x-i2c.c.

int pm860x_reg_read ( struct i2c_client ,
int   
)

Definition at line 17 of file 88pm860x-i2c.c.

int pm860x_reg_write ( struct i2c_client ,
int  ,
unsigned  char 
)

Definition at line 33 of file 88pm860x-i2c.c.

int pm860x_set_bits ( struct i2c_client ,
int  ,
unsigned  char,
unsigned  char 
)

Definition at line 72 of file 88pm860x-i2c.c.