regulator: twl-regulator: Implement enable_time callback
Subsystems (2)
PATCH 1/2 regulator: twl-regulator: Implement enable_time callback
Let regulator core do the necessary delay for us.
Signed-off-by Axel Lin <[email protected]>
--- drivers/regulator/twl-regulator.c | 23 +++++++++++++++++++---- 1 files changed, 19 insertions(+), 4 deletions(-)
drivers/regulator/twl-regulator.c +19 -4
@@ -205,8 +205,6 @@ static int twl4030reg_enable(struct regulator_dev *rdev) ret =twlreg_write (info,TWL_MODULE_PM_RECEIVER ,VREG_GRP , grp); -udelay (info->delay); -return ret; }
@@ -224,10 +222,21 @@ static int twl6030reg_enable(struct regulator_dev *rdev) ret =twlreg_write (info,TWL_MODULE_PM_RECEIVER ,VREG_STATE , grp <<TWL6030_CFG_STATE_GRP_SHIFT |TWL6030_CFG_STATE_ON ); +return ret; +} -udelay (info->delay); +static int twl4030reg_enable_time (struct regulator_dev *rdev) +{ +struct twlreg_info *info =rdev_get_drvdata (rdev); -return ret; +return info->delay; +} + +static int twl6030reg_enable_time (struct regulator_dev *rdev) +{ +struct twlreg_info *info =rdev_get_drvdata (rdev); + +return info->delay; }static int twl4030reg_disable (struct regulator_dev *rdev)
@@ -503,6 +512,7 @@ static struct regulator_ops twl4030ldo_ops = { .enable = twl4030reg_enable, .disable = twl4030reg_disable, .is_enabled = twl4030reg_is_enabled, + .enable_time = twl4030reg_enable_time, .set_mode = twl4030reg_set_mode,
@@ -623,6 +633,7 @@ static struct regulator_ops twl6030ldo_ops = { .enable = twl6030reg_enable, .disable = twl6030reg_disable, .is_enabled = twl6030reg_is_enabled, + .enable_time = twl6030reg_enable_time, .set_mode = twl6030reg_set_mode,
@@ -656,6 +667,7 @@ static struct regulator_ops twl4030fixed_ops = { .enable = twl4030reg_enable, .disable = twl4030reg_disable, .is_enabled = twl4030reg_is_enabled, + .enable_time = twl4030reg_enable_time, .set_mode = twl4030reg_set_mode,
@@ -670,6 +682,7 @@ static struct regulator_ops twl6030fixed_ops = { .enable = twl6030reg_enable, .disable = twl6030reg_disable, .is_enabled = twl6030reg_is_enabled, + .enable_time = twl6030reg_enable_time, .set_mode = twl6030reg_set_mode,
@@ -680,6 +693,7 @@ static struct regulator_ops twl6030_fixed_resource = { .enable = twl6030reg_enable, .disable = twl6030reg_disable, .is_enabled = twl6030reg_is_enabled, + .enable_time = twl6030reg_enable_time, .get_status = twl6030reg_get_status, };
@@ -876,6 +890,7 @@ static struct regulator_ops twlsmps_ops = { .enable = twl6030reg_enable, .disable = twl6030reg_disable, .is_enabled = twl6030reg_is_enabled, + .enable_time = twl6030reg_enable_time, .set_mode = twl6030reg_set_mode,
Signature · 1 line
1.7.5.4
PATCH 2/2 regulator: twl-regulator: Use twlreg_grp helper function
Since the twlreg_grp helper function is there, use it.
Signed-off-by Axel Lin <[email protected]>
--- drivers/regulator/twl-regulator.c | 21 ++++++++++----------- 1 files changed, 10 insertions(+), 11 deletions(-)
drivers/regulator/twl-regulator.c +10 -11
@@ -175,15 +175,14 @@ static int twl6030reg_is_enabled(struct regulator_dev *rdev)struct twlreg_info *info =rdev_get_drvdata (rdev);int grp =0 , val; -if (!(twl_class_is_6030 () && (info->features &TWL6025_SUBCLASS ))) - grp =twlreg_read (info,TWL_MODULE_PM_RECEIVER ,VREG_GRP ); -if (grp <0 ) -return grp; - -if (!(twl_class_is_6030 () && (info->features &TWL6025_SUBCLASS ))) +if (!(twl_class_is_6030 () && (info->features &TWL6025_SUBCLASS ))) { + grp =twlreg_grp (rdev); +if (grp <0 ) +return grp; grp &=P1_GRP_6030 ; -else + }else { grp =1 ; + } val =twlreg_read (info,TWL_MODULE_PM_RECEIVER ,VREG_STATE ); val =TWL6030_CFG_STATE_APP (val);
@@ -197,7 +196,7 @@ static int twl4030reg_enable(struct regulator_dev *rdev)int grp;int ret; - grp =twlreg_read (info,TWL_MODULE_PM_RECEIVER ,VREG_GRP ); + grp =twlreg_grp (rdev);if (grp <0 )return grp;
@@ -215,7 +214,7 @@ static int twl6030reg_enable(struct regulator_dev *rdev)int ret;if (!(twl_class_is_6030 () && (info->features &TWL6025_SUBCLASS ))) - grp =twlreg_read (info,TWL_MODULE_PM_RECEIVER ,VREG_GRP ); + grp =twlreg_grp (rdev);if (grp <0 )return grp;
@@ -245,7 +244,7 @@ static int twl4030reg_disable(struct regulator_dev *rdev)int grp;int ret; - grp =twlreg_read (info,TWL_MODULE_PM_RECEIVER ,VREG_GRP ); + grp =twlreg_grp (rdev);if (grp <0 )return grp;
@@ -357,7 +356,7 @@ static int twl6030reg_set_mode(struct regulator_dev *rdev, unsigned mode)int val;if (!(twl_class_is_6030 () && (info->features &TWL6025_SUBCLASS ))) - grp =twlreg_read (info,TWL_MODULE_PM_RECEIVER ,VREG_GRP ); + grp =twlreg_grp (rdev);if (grp <0 )return grp;
Signature · 1 line
1.7.5.4
Mark Brown
AppliedQuoted 1 line · Axel Lin
Let regulator core do the necessary delay for us.
Applied both, thanks.