blob: 067eeeae66e1e3326646a04ace53284a9ceab27e [file] [log] [blame]
# Lint as: python2, python3
# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can
# be # found in the LICENSE file.
"""Provides utility methods for the Real Time Clock device.
import errno, glob, os
def get_rtc_devices():
Return a list of all RTC device names on the system.
The RTC device node will be found at /dev/$NAME.
return [os.path.basename(rtc) for rtc in glob.glob('/sys/class/rtc/*')]
def get_seconds(utc=True, rtc_device='rtc0'):
Read the current time out of the RTC
with open('/sys/class/rtc/%s/since_epoch' % rtc_device) as rf:
seconds = rf.readline()
return int(seconds)
def write_wake_alarm(alarm_time, rtc_device='rtc0'):
Write a value to the wake alarm
with open('/sys/class/rtc/%s/wakealarm' % rtc_device, 'w') as f:
f.write('%s\n' % str(alarm_time))
def set_wake_alarm(alarm_time, rtc_device='rtc0'):
Set the hardware RTC-based wake alarm to 'alarm_time'.
write_wake_alarm(alarm_time, rtc_device)
except IOError as errs:
(errnum, strerror) = errs.args
if errnum != errno.EBUSY:
write_wake_alarm('0', rtc_device)
write_wake_alarm(alarm_time, rtc_device)