diff options
Diffstat (limited to 'drivers/mfd/twl-core.c')
-rw-r--r-- | drivers/mfd/twl-core.c | 51 |
1 files changed, 48 insertions, 3 deletions
diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c index c48a6138c575..2a7606534196 100644 --- a/drivers/mfd/twl-core.c +++ b/drivers/mfd/twl-core.c | |||
@@ -639,7 +639,7 @@ add_children(struct twl4030_platform_data *pdata, unsigned long features) | |||
639 | return PTR_ERR(child); | 639 | return PTR_ERR(child); |
640 | } | 640 | } |
641 | 641 | ||
642 | if (twl_has_usb() && pdata->usb) { | 642 | if (twl_has_usb() && pdata->usb && twl_class_is_4030()) { |
643 | 643 | ||
644 | static struct regulator_consumer_supply usb1v5 = { | 644 | static struct regulator_consumer_supply usb1v5 = { |
645 | .supply = "usb1v5", | 645 | .supply = "usb1v5", |
@@ -719,7 +719,8 @@ add_children(struct twl4030_platform_data *pdata, unsigned long features) | |||
719 | return PTR_ERR(child); | 719 | return PTR_ERR(child); |
720 | } | 720 | } |
721 | 721 | ||
722 | if (twl_has_regulator()) { | 722 | /* twl4030 regulators */ |
723 | if (twl_has_regulator() && twl_class_is_4030()) { | ||
723 | child = add_regulator(TWL4030_REG_VPLL1, pdata->vpll1); | 724 | child = add_regulator(TWL4030_REG_VPLL1, pdata->vpll1); |
724 | if (IS_ERR(child)) | 725 | if (IS_ERR(child)) |
725 | return PTR_ERR(child); | 726 | return PTR_ERR(child); |
@@ -765,7 +766,8 @@ add_children(struct twl4030_platform_data *pdata, unsigned long features) | |||
765 | } | 766 | } |
766 | 767 | ||
767 | /* maybe add LDOs that are omitted on cost-reduced parts */ | 768 | /* maybe add LDOs that are omitted on cost-reduced parts */ |
768 | if (twl_has_regulator() && !(features & TPS_SUBSET)) { | 769 | if (twl_has_regulator() && !(features & TPS_SUBSET) |
770 | && twl_class_is_4030()) { | ||
769 | child = add_regulator(TWL4030_REG_VPLL2, pdata->vpll2); | 771 | child = add_regulator(TWL4030_REG_VPLL2, pdata->vpll2); |
770 | if (IS_ERR(child)) | 772 | if (IS_ERR(child)) |
771 | return PTR_ERR(child); | 773 | return PTR_ERR(child); |
@@ -791,6 +793,49 @@ add_children(struct twl4030_platform_data *pdata, unsigned long features) | |||
791 | return PTR_ERR(child); | 793 | return PTR_ERR(child); |
792 | } | 794 | } |
793 | 795 | ||
796 | /* twl6030 regulators */ | ||
797 | if (twl_has_regulator() && twl_class_is_6030()) { | ||
798 | child = add_regulator(TWL6030_REG_VMMC, pdata->vmmc); | ||
799 | if (IS_ERR(child)) | ||
800 | return PTR_ERR(child); | ||
801 | |||
802 | child = add_regulator(TWL6030_REG_VPP, pdata->vpp); | ||
803 | if (IS_ERR(child)) | ||
804 | return PTR_ERR(child); | ||
805 | |||
806 | child = add_regulator(TWL6030_REG_VUSIM, pdata->vusim); | ||
807 | if (IS_ERR(child)) | ||
808 | return PTR_ERR(child); | ||
809 | |||
810 | child = add_regulator(TWL6030_REG_VANA, pdata->vana); | ||
811 | if (IS_ERR(child)) | ||
812 | return PTR_ERR(child); | ||
813 | |||
814 | child = add_regulator(TWL6030_REG_VCXIO, pdata->vcxio); | ||
815 | if (IS_ERR(child)) | ||
816 | return PTR_ERR(child); | ||
817 | |||
818 | child = add_regulator(TWL6030_REG_VDAC, pdata->vdac); | ||
819 | if (IS_ERR(child)) | ||
820 | return PTR_ERR(child); | ||
821 | |||
822 | child = add_regulator(TWL6030_REG_VUSB, pdata->vusb); | ||
823 | if (IS_ERR(child)) | ||
824 | return PTR_ERR(child); | ||
825 | |||
826 | child = add_regulator(TWL6030_REG_VAUX1_6030, pdata->vaux1); | ||
827 | if (IS_ERR(child)) | ||
828 | return PTR_ERR(child); | ||
829 | |||
830 | child = add_regulator(TWL6030_REG_VAUX2_6030, pdata->vaux2); | ||
831 | if (IS_ERR(child)) | ||
832 | return PTR_ERR(child); | ||
833 | |||
834 | child = add_regulator(TWL6030_REG_VAUX3_6030, pdata->vaux3); | ||
835 | if (IS_ERR(child)) | ||
836 | return PTR_ERR(child); | ||
837 | } | ||
838 | |||
794 | return 0; | 839 | return 0; |
795 | } | 840 | } |
796 | 841 | ||