diff options
author | Tom Rini <trini@konsulko.com> | 2017-04-10 08:07:29 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2017-04-10 08:07:29 -0400 |
commit | 01cce5fdd098add2b8aa570468cb35fca5d778fe (patch) | |
tree | 279174c700f36ef4c8a38b30e8c39be8b32e80e6 /drivers/rtc/rtc-uclass.c | |
parent | e391b1e64b0bd65709a28a4764afe4f32d408243 (diff) | |
parent | ca0d29e4f06095fd39f3125aef8f427aa1728ee5 (diff) |
Merge git://git.denx.de/u-boot-x86
Diffstat (limited to 'drivers/rtc/rtc-uclass.c')
-rw-r--r-- | drivers/rtc/rtc-uclass.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/drivers/rtc/rtc-uclass.c b/drivers/rtc/rtc-uclass.c index 300e9b30ec9..89312c51ff6 100644 --- a/drivers/rtc/rtc-uclass.c +++ b/drivers/rtc/rtc-uclass.c @@ -60,6 +60,36 @@ int rtc_write8(struct udevice *dev, unsigned int reg, int val) return ops->write8(dev, reg, val); } +int rtc_read16(struct udevice *dev, unsigned int reg, u16 *valuep) +{ + u16 value = 0; + int ret; + int i; + + for (i = 0; i < sizeof(value); i++) { + ret = rtc_read8(dev, reg + i); + if (ret < 0) + return ret; + value |= ret << (i << 3); + } + + *valuep = value; + return 0; +} + +int rtc_write16(struct udevice *dev, unsigned int reg, u16 value) +{ + int i, ret; + + for (i = 0; i < sizeof(value); i++) { + ret = rtc_write8(dev, reg + i, (value >> (i << 3)) & 0xff); + if (ret) + return ret; + } + + return 0; +} + int rtc_read32(struct udevice *dev, unsigned int reg, u32 *valuep) { u32 value = 0; |