Message ID | 20190812232850.8016-1-khilman@kernel.org |
---|---|
Headers | show |
Series | rtc: add new Amlogic Virtual Wake RTC | expand |
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
On 12/08/2019 16:28:50-0700, Kevin Hilman wrote: > From: Neil Armstrong <narmstrong@baylibre.com> > > The Amlogic Meson GX SoCs uses a special register to store the > time in seconds to wakeup after a system suspend. > > In order to be able to reuse the RTC wakealarm feature, this > driver implements a fake RTC device which uses the system time > to deduce a suspend delay. > > Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> > [khilman: rebase to v5.3-rc, rework and modernization] > Signed-off-by: Kevin Hilman <khilman@baylibre.com> > --- > MAINTAINERS | 1 + > drivers/rtc/Kconfig | 11 +++ > drivers/rtc/Makefile | 1 + > drivers/rtc/rtc-meson-vrtc.c | 156 +++++++++++++++++++++++++++++++++++ > 4 files changed, 169 insertions(+) > create mode 100644 drivers/rtc/rtc-meson-vrtc.c > Applied, thanks.
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