static int twl6030reg_get_status(struct regulator_dev *rdev) { struct twlreg_info *info = rdev_get_drvdata(rdev); int val; val = twlreg_grp(rdev); if (val < 0) return val; val = twlreg_read(info, TWL_MODULE_PM_RECEIVER, VREG_STATE); switch (TWL6030_CFG_STATE_APP(val)) { case TWL6030_CFG_STATE_ON: return REGULATOR_STATUS_NORMAL; case TWL6030_CFG_STATE_SLEEP: return REGULATOR_STATUS_STANDBY; case TWL6030_CFG_STATE_OFF: case TWL6030_CFG_STATE_OFF2: default: break; } return REGULATOR_STATUS_OFF; }
static int twl6030reg_is_enabled(struct regulator_dev *rdev) { struct twlreg_info *info = rdev_get_drvdata(rdev); int grp, val; grp = twlreg_read(info, TWL_MODULE_PM_RECEIVER, VREG_GRP); if (grp < 0) return grp; grp &= P1_GRP_6030; val = twlreg_read(info, TWL_MODULE_PM_RECEIVER, VREG_STATE); val = TWL6030_CFG_STATE_APP(val); return grp && (val == TWL6030_CFG_STATE_ON); }
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_grp(rdev); if (grp < 0) return grp; grp &= P1_GRP_6030; } else { grp = 1; } val = twlreg_read(info, TWL_MODULE_PM_RECEIVER, VREG_STATE); val = TWL6030_CFG_STATE_APP(val); return grp && (val == TWL6030_CFG_STATE_ON); }