diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/mfd/wm8350/core.h | 5 | ||||
| -rw-r--r-- | include/linux/mfd/wm8350/pmic.h | 42 |
2 files changed, 47 insertions, 0 deletions
diff --git a/include/linux/mfd/wm8350/core.h b/include/linux/mfd/wm8350/core.h index d86d38260c6..348101cb00d 100644 --- a/include/linux/mfd/wm8350/core.h +++ b/include/linux/mfd/wm8350/core.h | |||
| @@ -17,6 +17,8 @@ | |||
| 17 | #include <linux/mutex.h> | 17 | #include <linux/mutex.h> |
| 18 | #include <linux/workqueue.h> | 18 | #include <linux/workqueue.h> |
| 19 | 19 | ||
| 20 | #include <linux/mfd/wm8350/pmic.h> | ||
| 21 | |||
| 20 | /* | 22 | /* |
| 21 | * Register values. | 23 | * Register values. |
| 22 | */ | 24 | */ |
| @@ -570,6 +572,9 @@ struct wm8350 { | |||
| 570 | struct mutex irq_mutex; /* IRQ table mutex */ | 572 | struct mutex irq_mutex; /* IRQ table mutex */ |
| 571 | struct wm8350_irq irq[WM8350_NUM_IRQ]; | 573 | struct wm8350_irq irq[WM8350_NUM_IRQ]; |
| 572 | int chip_irq; | 574 | int chip_irq; |
| 575 | |||
| 576 | /* Client devices */ | ||
| 577 | struct wm8350_pmic pmic; | ||
| 573 | }; | 578 | }; |
| 574 | 579 | ||
| 575 | /** | 580 | /** |
diff --git a/include/linux/mfd/wm8350/pmic.h b/include/linux/mfd/wm8350/pmic.h index 28d2fab2787..69b69e07f62 100644 --- a/include/linux/mfd/wm8350/pmic.h +++ b/include/linux/mfd/wm8350/pmic.h | |||
| @@ -696,4 +696,46 @@ | |||
| 696 | 696 | ||
| 697 | #define NUM_WM8350_REGULATORS 12 | 697 | #define NUM_WM8350_REGULATORS 12 |
| 698 | 698 | ||
| 699 | struct wm8350; | ||
| 700 | struct platform_device; | ||
| 701 | struct regulator_init_data; | ||
| 702 | |||
| 703 | struct wm8350_pmic { | ||
| 704 | /* ISINK to DCDC mapping */ | ||
| 705 | int isink_A_dcdc; | ||
| 706 | int isink_B_dcdc; | ||
| 707 | |||
| 708 | /* hibernate configs */ | ||
| 709 | u16 dcdc1_hib_mode; | ||
| 710 | u16 dcdc3_hib_mode; | ||
| 711 | u16 dcdc4_hib_mode; | ||
| 712 | u16 dcdc6_hib_mode; | ||
| 713 | |||
| 714 | /* regulator devices */ | ||
| 715 | struct platform_device *pdev[NUM_WM8350_REGULATORS]; | ||
| 716 | }; | ||
| 717 | |||
| 718 | int wm8350_register_regulator(struct wm8350 *wm8350, int reg, | ||
| 719 | struct regulator_init_data *initdata); | ||
| 720 | |||
| 721 | /* | ||
| 722 | * Additional DCDC control not supported via regulator API | ||
| 723 | */ | ||
| 724 | int wm8350_dcdc_set_slot(struct wm8350 *wm8350, int dcdc, u16 start, | ||
| 725 | u16 stop, u16 fault); | ||
| 726 | int wm8350_dcdc25_set_mode(struct wm8350 *wm8350, int dcdc, u16 mode, | ||
| 727 | u16 ilim, u16 ramp, u16 feedback); | ||
| 728 | |||
| 729 | /* | ||
| 730 | * Additional LDO control not supported via regulator API | ||
| 731 | */ | ||
| 732 | int wm8350_ldo_set_slot(struct wm8350 *wm8350, int ldo, u16 start, u16 stop); | ||
| 733 | |||
| 734 | /* | ||
| 735 | * Additional ISINK control not supported via regulator API | ||
| 736 | */ | ||
| 737 | int wm8350_isink_set_flash(struct wm8350 *wm8350, int isink, u16 mode, | ||
| 738 | u16 trigger, u16 duration, u16 on_ramp, | ||
| 739 | u16 off_ramp, u16 drive); | ||
| 740 | |||
| 699 | #endif | 741 | #endif |
