diff options
author | Lee Jones <lee.jones@linaro.org> | 2013-03-28 12:11:09 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-03-29 13:50:35 -0400 |
commit | da0b0c47dcfd92317e2ece4c3434e1f82b55cf8a (patch) | |
tree | 5791e6422c9506a66bd66e6c17e81e470fd8e548 | |
parent | 41a06aa738ad889cf96f56024ddf84ecf4a18a6f (diff) |
regulator: ab8500: Init debug from regulator driver
The purpose of this patch is to guarantee that ab8500-debug will
record the regulator registers before they are modified by the
ab8500 regulator driver.
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r-- | drivers/regulator/ab8500.c | 10 | ||||
-rw-r--r-- | include/linux/regulator/ab8500.h | 14 |
2 files changed, 24 insertions, 0 deletions
diff --git a/drivers/regulator/ab8500.c b/drivers/regulator/ab8500.c index 4d88a604efd1..bf34c4cd6631 100644 --- a/drivers/regulator/ab8500.c +++ b/drivers/regulator/ab8500.c | |||
@@ -911,6 +911,11 @@ static int ab8500_regulator_probe(struct platform_device *pdev) | |||
911 | return -EINVAL; | 911 | return -EINVAL; |
912 | } | 912 | } |
913 | 913 | ||
914 | /* initialize debug (initial state is recorded with this call) */ | ||
915 | err = ab8500_regulator_debug_init(pdev); | ||
916 | if (err) | ||
917 | return err; | ||
918 | |||
914 | /* initialize registers */ | 919 | /* initialize registers */ |
915 | for (i = 0; i < pdata->num_reg_init; i++) { | 920 | for (i = 0; i < pdata->num_reg_init; i++) { |
916 | int id, mask, value; | 921 | int id, mask, value; |
@@ -961,6 +966,11 @@ static int ab8500_regulator_remove(struct platform_device *pdev) | |||
961 | if (err) | 966 | if (err) |
962 | return err; | 967 | return err; |
963 | 968 | ||
969 | /* remove regulator debug */ | ||
970 | err = ab8500_regulator_debug_exit(pdev); | ||
971 | if (err) | ||
972 | return err; | ||
973 | |||
964 | return 0; | 974 | return 0; |
965 | } | 975 | } |
966 | 976 | ||
diff --git a/include/linux/regulator/ab8500.h b/include/linux/regulator/ab8500.h index b86e089195ea..592a3f3994c0 100644 --- a/include/linux/regulator/ab8500.h +++ b/include/linux/regulator/ab8500.h | |||
@@ -178,4 +178,18 @@ inline int ab8500_ext_regulator_exit(struct platform_device *pdev) | |||
178 | } | 178 | } |
179 | #endif | 179 | #endif |
180 | 180 | ||
181 | #ifdef CONFIG_REGULATOR_AB8500_DEBUG | ||
182 | int ab8500_regulator_debug_init(struct platform_device *pdev); | ||
183 | int ab8500_regulator_debug_exit(struct platform_device *pdev); | ||
184 | #else | ||
185 | static inline int ab8500_regulator_debug_init(struct platform_device *pdev) | ||
186 | { | ||
187 | return 0; | ||
188 | } | ||
189 | static inline int ab8500_regulator_debug_exit(struct platform_device *pdev) | ||
190 | { | ||
191 | return 0; | ||
192 | } | ||
193 | #endif | ||
194 | |||
181 | #endif | 195 | #endif |