Commit 21be848e authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Chanwoo Choi

extcon: axp288: Use for_each_set_bit() in axp288_extcon_log_rsi()

This simplifies and standardizes axp288_extcon_log_rsi()
by using for_each_set_bit() library function.
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarChanwoo Choi <cw00.choi@samsung.com>
parent d72e3dc7
...@@ -121,7 +121,6 @@ static const char * const axp288_pwr_up_down_info[] = { ...@@ -121,7 +121,6 @@ static const char * const axp288_pwr_up_down_info[] = {
"Last shutdown caused by PMIC UVLO threshold", "Last shutdown caused by PMIC UVLO threshold",
"Last shutdown caused by SOC initiated cold off", "Last shutdown caused by SOC initiated cold off",
"Last shutdown caused by user pressing the power button", "Last shutdown caused by user pressing the power button",
NULL,
}; };
/* /*
...@@ -130,8 +129,8 @@ static const char * const axp288_pwr_up_down_info[] = { ...@@ -130,8 +129,8 @@ static const char * const axp288_pwr_up_down_info[] = {
*/ */
static void axp288_extcon_log_rsi(struct axp288_extcon_info *info) static void axp288_extcon_log_rsi(struct axp288_extcon_info *info)
{ {
const char * const *rsi;
unsigned int val, i, clear_mask = 0; unsigned int val, i, clear_mask = 0;
unsigned long bits;
int ret; int ret;
ret = regmap_read(info->regmap, AXP288_PS_BOOT_REASON_REG, &val); ret = regmap_read(info->regmap, AXP288_PS_BOOT_REASON_REG, &val);
...@@ -140,12 +139,10 @@ static void axp288_extcon_log_rsi(struct axp288_extcon_info *info) ...@@ -140,12 +139,10 @@ static void axp288_extcon_log_rsi(struct axp288_extcon_info *info)
return; return;
} }
for (i = 0, rsi = axp288_pwr_up_down_info; *rsi; rsi++, i++) { bits = val & GENMASK(ARRAY_SIZE(axp288_pwr_up_down_info) - 1, 0);
if (val & BIT(i)) { for_each_set_bit(i, &bits, ARRAY_SIZE(axp288_pwr_up_down_info))
dev_dbg(info->dev, "%s\n", *rsi); dev_dbg(info->dev, "%s\n", axp288_pwr_up_down_info[i]);
clear_mask |= BIT(i); clear_mask = bits;
}
}
/* Clear the register value for next reboot (write 1 to clear bit) */ /* Clear the register value for next reboot (write 1 to clear bit) */
regmap_write(info->regmap, AXP288_PS_BOOT_REASON_REG, clear_mask); regmap_write(info->regmap, AXP288_PS_BOOT_REASON_REG, clear_mask);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment