rtc: add BSM parameter

BSM or Backup Switch Mode is a common feature on RTCs, allowing to select
how the RTC will decide when to switch from its primary power supply to the
backup power supply. It is necessary to be able to set it from userspace as
there are uses cases where it has to be done dynamically.

Supported values are:
  RTC_BSM_DISABLED: disabled
  RTC_BSM_DIRECT: switching will happen as soon as Vbackup > Vdd
  RTC_BSM_LEVEL: switching will happen around a threshold, usually with an
  hysteresis
  RTC_BSM_STANDBY: switching will not happen until Vdd > Vbackup, this is
  useful to ensure the RTC doesn't draw any power until the device is first
  powered on.

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/20211018151933.76865-6-alexandre.belloni@bootlin.com
This commit is contained in:
Alexandre Belloni
2021-10-18 17:19:31 +02:00
parent a6d8c6e1a5
commit 0d20e9fb12
3 changed files with 18 additions and 3 deletions

View File

@@ -409,7 +409,10 @@ static long rtc_dev_ioctl(struct file *file,
break;
default:
err = -EINVAL;
if (rtc->ops->param_get)
err = rtc->ops->param_get(rtc->dev.parent, &param);
else
err = -EINVAL;
}
if (!err)
@@ -436,7 +439,10 @@ static long rtc_dev_ioctl(struct file *file,
return rtc_set_offset(rtc, param.svalue);
default:
err = -EINVAL;
if (rtc->ops->param_set)
err = rtc->ops->param_set(rtc->dev.parent, &param);
else
err = -EINVAL;
}
break;