aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mfd/88pm860x.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/mfd/88pm860x.h')
-rw-r--r--include/linux/mfd/88pm860x.h48
1 files changed, 19 insertions, 29 deletions
diff --git a/include/linux/mfd/88pm860x.h b/include/linux/mfd/88pm860x.h
index 7b24943779fa..ef3e6b701179 100644
--- a/include/linux/mfd/88pm860x.h
+++ b/include/linux/mfd/88pm860x.h
@@ -34,22 +34,6 @@ enum {
34 PM8606_ID_MAX, 34 PM8606_ID_MAX,
35}; 35};
36 36
37enum {
38 PM8606_BACKLIGHT1 = 0,
39 PM8606_BACKLIGHT2,
40 PM8606_BACKLIGHT3,
41};
42
43enum {
44 PM8606_LED1_RED = 0,
45 PM8606_LED1_GREEN,
46 PM8606_LED1_BLUE,
47 PM8606_LED2_RED,
48 PM8606_LED2_GREEN,
49 PM8606_LED2_BLUE,
50 PM8607_LED_VIBRATOR,
51};
52
53 37
54/* 8606 Registers */ 38/* 8606 Registers */
55#define PM8606_DCM_BOOST (0x00) 39#define PM8606_DCM_BOOST (0x00)
@@ -322,7 +306,7 @@ struct pm860x_chip {
322 struct regmap *regmap_companion; 306 struct regmap *regmap_companion;
323 307
324 int buck3_double; /* DVC ramp slope double */ 308 int buck3_double; /* DVC ramp slope double */
325 unsigned short companion_addr; 309 int companion_addr;
326 unsigned short osc_vote; 310 unsigned short osc_vote;
327 int id; 311 int id;
328 int irq_mode; 312 int irq_mode;
@@ -340,16 +324,12 @@ enum {
340}; 324};
341 325
342struct pm860x_backlight_pdata { 326struct pm860x_backlight_pdata {
343 int id;
344 int pwm; 327 int pwm;
345 int iset; 328 int iset;
346 unsigned long flags;
347}; 329};
348 330
349struct pm860x_led_pdata { 331struct pm860x_led_pdata {
350 int id;
351 int iset; 332 int iset;
352 unsigned long flags;
353}; 333};
354 334
355struct pm860x_rtc_pdata { 335struct pm860x_rtc_pdata {
@@ -379,15 +359,29 @@ struct pm860x_platform_data {
379 struct pm860x_rtc_pdata *rtc; 359 struct pm860x_rtc_pdata *rtc;
380 struct pm860x_touch_pdata *touch; 360 struct pm860x_touch_pdata *touch;
381 struct pm860x_power_pdata *power; 361 struct pm860x_power_pdata *power;
382 struct regulator_init_data *regulator; 362 struct regulator_init_data *buck1;
383 363 struct regulator_init_data *buck2;
384 unsigned short companion_addr; /* I2C address of companion chip */ 364 struct regulator_init_data *buck3;
365 struct regulator_init_data *ldo1;
366 struct regulator_init_data *ldo2;
367 struct regulator_init_data *ldo3;
368 struct regulator_init_data *ldo4;
369 struct regulator_init_data *ldo5;
370 struct regulator_init_data *ldo6;
371 struct regulator_init_data *ldo7;
372 struct regulator_init_data *ldo8;
373 struct regulator_init_data *ldo9;
374 struct regulator_init_data *ldo10;
375 struct regulator_init_data *ldo12;
376 struct regulator_init_data *ldo_vibrator;
377 struct regulator_init_data *ldo14;
378
379 int companion_addr; /* I2C address of companion chip */
385 int i2c_port; /* Controlled by GI2C or PI2C */ 380 int i2c_port; /* Controlled by GI2C or PI2C */
386 int irq_mode; /* Clear interrupt by read/write(0/1) */ 381 int irq_mode; /* Clear interrupt by read/write(0/1) */
387 int irq_base; /* IRQ base number of 88pm860x */ 382 int irq_base; /* IRQ base number of 88pm860x */
388 int num_leds; 383 int num_leds;
389 int num_backlights; 384 int num_backlights;
390 int num_regulators;
391}; 385};
392 386
393extern int pm8606_osc_enable(struct pm860x_chip *, unsigned short); 387extern int pm8606_osc_enable(struct pm860x_chip *, unsigned short);
@@ -408,8 +402,4 @@ extern int pm860x_page_bulk_write(struct i2c_client *, int, int,
408extern int pm860x_page_set_bits(struct i2c_client *, int, unsigned char, 402extern int pm860x_page_set_bits(struct i2c_client *, int, unsigned char,
409 unsigned char); 403 unsigned char);
410 404
411extern int pm860x_device_init(struct pm860x_chip *chip,
412 struct pm860x_platform_data *pdata) __devinit ;
413extern void pm860x_device_exit(struct pm860x_chip *chip) __devexit ;
414
415#endif /* __LINUX_MFD_88PM860X_H */ 405#endif /* __LINUX_MFD_88PM860X_H */