aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/regulator/twl-regulator.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/regulator/twl-regulator.c')
-rw-r--r--drivers/regulator/twl-regulator.c66
1 files changed, 31 insertions, 35 deletions
diff --git a/drivers/regulator/twl-regulator.c b/drivers/regulator/twl-regulator.c
index 87fe0f75a56e..ee8747f4fa08 100644
--- a/drivers/regulator/twl-regulator.c
+++ b/drivers/regulator/twl-regulator.c
@@ -835,8 +835,8 @@ static struct regulator_ops twlsmps_ops = {
835 remap_conf) \ 835 remap_conf) \
836 TWL_FIXED_LDO(label, offset, mVolts, num, turnon_delay, \ 836 TWL_FIXED_LDO(label, offset, mVolts, num, turnon_delay, \
837 remap_conf, TWL4030, twl4030fixed_ops) 837 remap_conf, TWL4030, twl4030fixed_ops)
838#define TWL6030_FIXED_LDO(label, offset, mVolts, num, turnon_delay) \ 838#define TWL6030_FIXED_LDO(label, offset, mVolts, turnon_delay) \
839 TWL_FIXED_LDO(label, offset, mVolts, num, turnon_delay, \ 839 TWL_FIXED_LDO(label, offset, mVolts, 0x0, turnon_delay, \
840 0x0, TWL6030, twl6030fixed_ops) 840 0x0, TWL6030, twl6030fixed_ops)
841 841
842#define TWL4030_ADJUSTABLE_LDO(label, offset, num, turnon_delay, remap_conf) { \ 842#define TWL4030_ADJUSTABLE_LDO(label, offset, num, turnon_delay, remap_conf) { \
@@ -856,24 +856,22 @@ static struct regulator_ops twlsmps_ops = {
856 }, \ 856 }, \
857 } 857 }
858 858
859#define TWL6030_ADJUSTABLE_LDO(label, offset, min_mVolts, max_mVolts, num) { \ 859#define TWL6030_ADJUSTABLE_LDO(label, offset, min_mVolts, max_mVolts) { \
860 .base = offset, \ 860 .base = offset, \
861 .id = num, \
862 .min_mV = min_mVolts, \ 861 .min_mV = min_mVolts, \
863 .max_mV = max_mVolts, \ 862 .max_mV = max_mVolts, \
864 .desc = { \ 863 .desc = { \
865 .name = #label, \ 864 .name = #label, \
866 .id = TWL6030_REG_##label, \ 865 .id = TWL6030_REG_##label, \
867 .n_voltages = (max_mVolts - min_mVolts)/100, \ 866 .n_voltages = (max_mVolts - min_mVolts)/100 + 1, \
868 .ops = &twl6030ldo_ops, \ 867 .ops = &twl6030ldo_ops, \
869 .type = REGULATOR_VOLTAGE, \ 868 .type = REGULATOR_VOLTAGE, \
870 .owner = THIS_MODULE, \ 869 .owner = THIS_MODULE, \
871 }, \ 870 }, \
872 } 871 }
873 872
874#define TWL6025_ADJUSTABLE_LDO(label, offset, min_mVolts, max_mVolts, num) { \ 873#define TWL6025_ADJUSTABLE_LDO(label, offset, min_mVolts, max_mVolts) { \
875 .base = offset, \ 874 .base = offset, \
876 .id = num, \
877 .min_mV = min_mVolts, \ 875 .min_mV = min_mVolts, \
878 .max_mV = max_mVolts, \ 876 .max_mV = max_mVolts, \
879 .desc = { \ 877 .desc = { \
@@ -903,9 +901,8 @@ static struct regulator_ops twlsmps_ops = {
903 }, \ 901 }, \
904 } 902 }
905 903
906#define TWL6030_FIXED_RESOURCE(label, offset, num, turnon_delay) { \ 904#define TWL6030_FIXED_RESOURCE(label, offset, turnon_delay) { \
907 .base = offset, \ 905 .base = offset, \
908 .id = num, \
909 .delay = turnon_delay, \ 906 .delay = turnon_delay, \
910 .desc = { \ 907 .desc = { \
911 .name = #label, \ 908 .name = #label, \
@@ -916,9 +913,8 @@ static struct regulator_ops twlsmps_ops = {
916 }, \ 913 }, \
917 } 914 }
918 915
919#define TWL6025_ADJUSTABLE_SMPS(label, offset, num) { \ 916#define TWL6025_ADJUSTABLE_SMPS(label, offset) { \
920 .base = offset, \ 917 .base = offset, \
921 .id = num, \
922 .min_mV = 600, \ 918 .min_mV = 600, \
923 .max_mV = 2100, \ 919 .max_mV = 2100, \
924 .desc = { \ 920 .desc = { \
@@ -961,32 +957,32 @@ static struct twlreg_info twl_regs[] = {
961 /* 6030 REG with base as PMC Slave Misc : 0x0030 */ 957 /* 6030 REG with base as PMC Slave Misc : 0x0030 */
962 /* Turnon-delay and remap configuration values for 6030 are not 958 /* Turnon-delay and remap configuration values for 6030 are not
963 verified since the specification is not public */ 959 verified since the specification is not public */
964 TWL6030_ADJUSTABLE_LDO(VAUX1_6030, 0x54, 1000, 3300, 1), 960 TWL6030_ADJUSTABLE_LDO(VAUX1_6030, 0x54, 1000, 3300),
965 TWL6030_ADJUSTABLE_LDO(VAUX2_6030, 0x58, 1000, 3300, 2), 961 TWL6030_ADJUSTABLE_LDO(VAUX2_6030, 0x58, 1000, 3300),
966 TWL6030_ADJUSTABLE_LDO(VAUX3_6030, 0x5c, 1000, 3300, 3), 962 TWL6030_ADJUSTABLE_LDO(VAUX3_6030, 0x5c, 1000, 3300),
967 TWL6030_ADJUSTABLE_LDO(VMMC, 0x68, 1000, 3300, 4), 963 TWL6030_ADJUSTABLE_LDO(VMMC, 0x68, 1000, 3300),
968 TWL6030_ADJUSTABLE_LDO(VPP, 0x6c, 1000, 3300, 5), 964 TWL6030_ADJUSTABLE_LDO(VPP, 0x6c, 1000, 3300),
969 TWL6030_ADJUSTABLE_LDO(VUSIM, 0x74, 1000, 3300, 7), 965 TWL6030_ADJUSTABLE_LDO(VUSIM, 0x74, 1000, 3300),
970 TWL6030_FIXED_LDO(VANA, 0x50, 2100, 15, 0), 966 TWL6030_FIXED_LDO(VANA, 0x50, 2100, 0),
971 TWL6030_FIXED_LDO(VCXIO, 0x60, 1800, 16, 0), 967 TWL6030_FIXED_LDO(VCXIO, 0x60, 1800, 0),
972 TWL6030_FIXED_LDO(VDAC, 0x64, 1800, 17, 0), 968 TWL6030_FIXED_LDO(VDAC, 0x64, 1800, 0),
973 TWL6030_FIXED_LDO(VUSB, 0x70, 3300, 18, 0), 969 TWL6030_FIXED_LDO(VUSB, 0x70, 3300, 0),
974 TWL6030_FIXED_RESOURCE(CLK32KG, 0x8C, 48, 0), 970 TWL6030_FIXED_RESOURCE(CLK32KG, 0x8C, 0),
975 971
976 /* 6025 are renamed compared to 6030 versions */ 972 /* 6025 are renamed compared to 6030 versions */
977 TWL6025_ADJUSTABLE_LDO(LDO2, 0x54, 1000, 3300, 1), 973 TWL6025_ADJUSTABLE_LDO(LDO2, 0x54, 1000, 3300),
978 TWL6025_ADJUSTABLE_LDO(LDO4, 0x58, 1000, 3300, 2), 974 TWL6025_ADJUSTABLE_LDO(LDO4, 0x58, 1000, 3300),
979 TWL6025_ADJUSTABLE_LDO(LDO3, 0x5c, 1000, 3300, 3), 975 TWL6025_ADJUSTABLE_LDO(LDO3, 0x5c, 1000, 3300),
980 TWL6025_ADJUSTABLE_LDO(LDO5, 0x68, 1000, 3300, 4), 976 TWL6025_ADJUSTABLE_LDO(LDO5, 0x68, 1000, 3300),
981 TWL6025_ADJUSTABLE_LDO(LDO1, 0x6c, 1000, 3300, 5), 977 TWL6025_ADJUSTABLE_LDO(LDO1, 0x6c, 1000, 3300),
982 TWL6025_ADJUSTABLE_LDO(LDO7, 0x74, 1000, 3300, 7), 978 TWL6025_ADJUSTABLE_LDO(LDO7, 0x74, 1000, 3300),
983 TWL6025_ADJUSTABLE_LDO(LDO6, 0x60, 1000, 3300, 16), 979 TWL6025_ADJUSTABLE_LDO(LDO6, 0x60, 1000, 3300),
984 TWL6025_ADJUSTABLE_LDO(LDOLN, 0x64, 1000, 3300, 17), 980 TWL6025_ADJUSTABLE_LDO(LDOLN, 0x64, 1000, 3300),
985 TWL6025_ADJUSTABLE_LDO(LDOUSB, 0x70, 1000, 3300, 18), 981 TWL6025_ADJUSTABLE_LDO(LDOUSB, 0x70, 1000, 3300),
986 982
987 TWL6025_ADJUSTABLE_SMPS(SMPS3, 0x34, 1), 983 TWL6025_ADJUSTABLE_SMPS(SMPS3, 0x34),
988 TWL6025_ADJUSTABLE_SMPS(SMPS4, 0x10, 2), 984 TWL6025_ADJUSTABLE_SMPS(SMPS4, 0x10),
989 TWL6025_ADJUSTABLE_SMPS(VIO, 0x16, 3), 985 TWL6025_ADJUSTABLE_SMPS(VIO, 0x16),
990}; 986};
991 987
992static u8 twl_get_smps_offset(void) 988static u8 twl_get_smps_offset(void)