diff options
author | Sachin Kamat <sachin.kamat@linaro.org> | 2013-09-04 02:31:01 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-09-16 19:28:42 -0400 |
commit | 51c86b3eb80ebe0a35aba5ba3e96b22d61043ad1 (patch) | |
tree | 08a089da7107f8f287ab182ef663a4d707cf6d6e /drivers/regulator/palmas-regulator.c | |
parent | 8c0b4ab5024c7b7d3498957cdbe4fea151142f7a (diff) |
regulator: palmas: Use devm_regulator_register
devm_* simplifies the code.
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'drivers/regulator/palmas-regulator.c')
-rw-r--r-- | drivers/regulator/palmas-regulator.c | 38 |
1 files changed, 11 insertions, 27 deletions
diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c index 488dfe7ce9a6..6c9670ff6be5 100644 --- a/drivers/regulator/palmas-regulator.c +++ b/drivers/regulator/palmas-regulator.c | |||
@@ -862,7 +862,7 @@ static int palmas_regulators_probe(struct platform_device *pdev) | |||
862 | if (ret < 0) { | 862 | if (ret < 0) { |
863 | dev_err(&pdev->dev, | 863 | dev_err(&pdev->dev, |
864 | "reading TSTEP reg failed: %d\n", ret); | 864 | "reading TSTEP reg failed: %d\n", ret); |
865 | goto err_unregister_regulator; | 865 | return ret; |
866 | } | 866 | } |
867 | pmic->desc[id].ramp_delay = | 867 | pmic->desc[id].ramp_delay = |
868 | palmas_smps_ramp_delay[reg & 0x3]; | 868 | palmas_smps_ramp_delay[reg & 0x3]; |
@@ -874,7 +874,7 @@ static int palmas_regulators_probe(struct platform_device *pdev) | |||
874 | reg_init = pdata->reg_init[id]; | 874 | reg_init = pdata->reg_init[id]; |
875 | ret = palmas_smps_init(palmas, id, reg_init); | 875 | ret = palmas_smps_init(palmas, id, reg_init); |
876 | if (ret) | 876 | if (ret) |
877 | goto err_unregister_regulator; | 877 | return ret; |
878 | } | 878 | } |
879 | 879 | ||
880 | /* Register the regulators */ | 880 | /* Register the regulators */ |
@@ -915,7 +915,7 @@ static int palmas_regulators_probe(struct platform_device *pdev) | |||
915 | 915 | ||
916 | ret = palmas_smps_read(pmic->palmas, addr, ®); | 916 | ret = palmas_smps_read(pmic->palmas, addr, ®); |
917 | if (ret) | 917 | if (ret) |
918 | goto err_unregister_regulator; | 918 | return ret; |
919 | if (reg & PALMAS_SMPS12_VOLTAGE_RANGE) | 919 | if (reg & PALMAS_SMPS12_VOLTAGE_RANGE) |
920 | pmic->range[id] = 1; | 920 | pmic->range[id] = 1; |
921 | 921 | ||
@@ -931,7 +931,7 @@ static int palmas_regulators_probe(struct platform_device *pdev) | |||
931 | addr = palmas_regs_info[id].ctrl_addr; | 931 | addr = palmas_regs_info[id].ctrl_addr; |
932 | ret = palmas_smps_read(pmic->palmas, addr, ®); | 932 | ret = palmas_smps_read(pmic->palmas, addr, ®); |
933 | if (ret) | 933 | if (ret) |
934 | goto err_unregister_regulator; | 934 | return ret; |
935 | pmic->current_reg_mode[id] = reg & | 935 | pmic->current_reg_mode[id] = reg & |
936 | PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK; | 936 | PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK; |
937 | } | 937 | } |
@@ -947,13 +947,13 @@ static int palmas_regulators_probe(struct platform_device *pdev) | |||
947 | pmic->desc[id].supply_name = palmas_regs_info[id].sname; | 947 | pmic->desc[id].supply_name = palmas_regs_info[id].sname; |
948 | config.of_node = palmas_matches[id].of_node; | 948 | config.of_node = palmas_matches[id].of_node; |
949 | 949 | ||
950 | rdev = regulator_register(&pmic->desc[id], &config); | 950 | rdev = devm_regulator_register(&pdev->dev, &pmic->desc[id], |
951 | &config); | ||
951 | if (IS_ERR(rdev)) { | 952 | if (IS_ERR(rdev)) { |
952 | dev_err(&pdev->dev, | 953 | dev_err(&pdev->dev, |
953 | "failed to register %s regulator\n", | 954 | "failed to register %s regulator\n", |
954 | pdev->name); | 955 | pdev->name); |
955 | ret = PTR_ERR(rdev); | 956 | return PTR_ERR(rdev); |
956 | goto err_unregister_regulator; | ||
957 | } | 957 | } |
958 | 958 | ||
959 | /* Save regulator for cleanup */ | 959 | /* Save regulator for cleanup */ |
@@ -1015,13 +1015,13 @@ static int palmas_regulators_probe(struct platform_device *pdev) | |||
1015 | pmic->desc[id].supply_name = palmas_regs_info[id].sname; | 1015 | pmic->desc[id].supply_name = palmas_regs_info[id].sname; |
1016 | config.of_node = palmas_matches[id].of_node; | 1016 | config.of_node = palmas_matches[id].of_node; |
1017 | 1017 | ||
1018 | rdev = regulator_register(&pmic->desc[id], &config); | 1018 | rdev = devm_regulator_register(&pdev->dev, &pmic->desc[id], |
1019 | &config); | ||
1019 | if (IS_ERR(rdev)) { | 1020 | if (IS_ERR(rdev)) { |
1020 | dev_err(&pdev->dev, | 1021 | dev_err(&pdev->dev, |
1021 | "failed to register %s regulator\n", | 1022 | "failed to register %s regulator\n", |
1022 | pdev->name); | 1023 | pdev->name); |
1023 | ret = PTR_ERR(rdev); | 1024 | return PTR_ERR(rdev); |
1024 | goto err_unregister_regulator; | ||
1025 | } | 1025 | } |
1026 | 1026 | ||
1027 | /* Save regulator for cleanup */ | 1027 | /* Save regulator for cleanup */ |
@@ -1039,7 +1039,7 @@ static int palmas_regulators_probe(struct platform_device *pdev) | |||
1039 | id, reg_init); | 1039 | id, reg_init); |
1040 | if (ret) { | 1040 | if (ret) { |
1041 | regulator_unregister(pmic->rdev[id]); | 1041 | regulator_unregister(pmic->rdev[id]); |
1042 | goto err_unregister_regulator; | 1042 | return ret; |
1043 | } | 1043 | } |
1044 | } | 1044 | } |
1045 | } | 1045 | } |
@@ -1047,21 +1047,6 @@ static int palmas_regulators_probe(struct platform_device *pdev) | |||
1047 | 1047 | ||
1048 | 1048 | ||
1049 | return 0; | 1049 | return 0; |
1050 | |||
1051 | err_unregister_regulator: | ||
1052 | while (--id >= 0) | ||
1053 | regulator_unregister(pmic->rdev[id]); | ||
1054 | return ret; | ||
1055 | } | ||
1056 | |||
1057 | static int palmas_regulators_remove(struct platform_device *pdev) | ||
1058 | { | ||
1059 | struct palmas_pmic *pmic = platform_get_drvdata(pdev); | ||
1060 | int id; | ||
1061 | |||
1062 | for (id = 0; id < PALMAS_NUM_REGS; id++) | ||
1063 | regulator_unregister(pmic->rdev[id]); | ||
1064 | return 0; | ||
1065 | } | 1050 | } |
1066 | 1051 | ||
1067 | static struct of_device_id of_palmas_match_tbl[] = { | 1052 | static struct of_device_id of_palmas_match_tbl[] = { |
@@ -1083,7 +1068,6 @@ static struct platform_driver palmas_driver = { | |||
1083 | .owner = THIS_MODULE, | 1068 | .owner = THIS_MODULE, |
1084 | }, | 1069 | }, |
1085 | .probe = palmas_regulators_probe, | 1070 | .probe = palmas_regulators_probe, |
1086 | .remove = palmas_regulators_remove, | ||
1087 | }; | 1071 | }; |
1088 | 1072 | ||
1089 | static int __init palmas_init(void) | 1073 | static int __init palmas_init(void) |