
I need access to registers other than just the timekeeping ones of the pcf2127, so I wanted to implement ->read8 and ->write8. But for testing these it appeared there was no convenient way to invoke those from the shell, so I also ended up adding such a command.
Also, it seemed more natural to provide array variants that can read or write several registers at once, so rtc_ops is expanded a bit.
There are a few things one could do on top, but for now I just want some feedback, especially on the new _array methods. "rtc set", "rtc get" and "rtc reset" are rather obvious subsommands to add at some point. Also, rtc_{read,write}{16,32} can be simplified a bit, along the lines of
__le16 v; int ret = rtc_read8_array(dev, reg, &v, 2); if (ret) return ret; *valuep = __le16_to_cpu(v); return 0;
Rasmus Villemoes (6): rtc: add rtc_read8_array helper and ->read8_array method rtc: add rtc_write8_array() helper rtc: fall back to ->{read,write}8_array if ->{read,write}8 are not provided rtc: pcf2127: provide ->read8_array method rtc: pcf2127: provide ->write8_array method rtc: add rtc command
cmd/Kconfig | 6 ++ cmd/Makefile | 1 + cmd/rtc.c | 153 +++++++++++++++++++++++++++++++++++++++ drivers/rtc/pcf2127.c | 14 +++- drivers/rtc/rtc-uclass.c | 53 +++++++++++++- include/rtc.h | 48 ++++++++++++ 6 files changed, 270 insertions(+), 5 deletions(-) create mode 100644 cmd/rtc.c