mbox series

[v3,0/2] rtc: add new Amlogic Virtual Wake RTC

Message ID 20190812232850.8016-1-khilman@kernel.org
Headers show
Series rtc: add new Amlogic Virtual Wake RTC | expand

Message

Kevin Hilman Aug. 12, 2019, 11:28 p.m. UTC
From: Kevin Hilman <khilman@baylibre.com>


Add a new driver for the virtual wake RTC on Amlogic SoCs.

The RTC is virtual from the Linux side because it's a hardware timer
managed by firmware on the secure co-processor (SCP.)  The interface
is 1 register where a wakeup time (in seconds) is written.  The SCP then
uses this value to program an always-on timer.

Changes since v2:
- switch to devm_platform_ioremap_resource()
- switch to devm_rtc_allocate_device() and rtc_register_device()

Changes since v1:
- add MAINTAINERS entry
- add nop ->alarm_irq_enable() (workaround for RTC core
  limitation pointed out by Alexandre Belloni)
- remove unused ->read_alarm()
- fix statics
- move resume to dev_pm_ops
- add suspend hook
- don't calculate (or write) the alarm timer value until suspend time

Changes since Neil's original version
- move from do_gettimeofday() to ktime_get()


Kevin Hilman (1):
  dt-bindings: rtc: new binding for Amlogic VRTC

Neil Armstrong (1):
  rtc: Add Amlogic Virtual Wake RTC

 .../bindings/rtc/rtc-meson-vrtc.txt           |  22 +++
 MAINTAINERS                                   |   1 +
 drivers/rtc/Kconfig                           |  11 ++
 drivers/rtc/Makefile                          |   1 +
 drivers/rtc/rtc-meson-vrtc.c                  | 156 ++++++++++++++++++
 5 files changed, 191 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/rtc/rtc-meson-vrtc.txt
 create mode 100644 drivers/rtc/rtc-meson-vrtc.c

-- 
2.22.0

Comments

Kevin Hilman Aug. 22, 2019, 8:52 p.m. UTC | #1
Kevin Hilman <khilman@kernel.org> writes:

> From: Kevin Hilman <khilman@baylibre.com>

>

> Add a new driver for the virtual wake RTC on Amlogic SoCs.

>

> The RTC is virtual from the Linux side because it's a hardware timer

> managed by firmware on the secure co-processor (SCP.)  The interface

> is 1 register where a wakeup time (in seconds) is written.  The SCP then

> uses this value to program an always-on timer.


Just FYI... this was originally tested on G12A and G12B SoCs, but has
now also been tested to work unmodified on the new SM1 SoC as well.

Kevin