rtc/tpo: Driver to support rtc and wakeup on PowerNV platform
authorNeelesh Gupta <neelegup@linux.vnet.ibm.com>
Tue, 14 Oct 2014 08:38:36 +0000 (14:08 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 17 Nov 2014 07:04:01 +0000 (18:04 +1100)
commit16b1d26e77b142546e2b9b6dc3b5aa5c44ae3b77
tree20c1c8e82cecb391dafadc01eb57c7a6bd58b25a
parent59994fb01a102a448ba758c9b824a29b4a99cc1b
rtc/tpo: Driver to support rtc and wakeup on PowerNV platform

The patch implements the OPAL rtc driver that binds with the rtc
driver subsystem. The driver uses the platform device infrastructure
to probe the rtc device and register it to rtc class framework. The
'wakeup' is supported depending upon the property 'has-tpo' present
in the OF node. It provides a way to load the generic rtc driver in
in the absence of an OPAL driver.

The patch also moves the existing OPAL rtc get/set time interfaces to the
new driver and exposes the necessary OPAL calls using EXPORT_SYMBOL_GPL.

Test results:
-------------
Host:
[root@tul169p1 ~]# ls -l /sys/class/rtc/
total 0
lrwxrwxrwx 1 root root 0 Oct 14 03:07 rtc0 -> ../../devices/opal-rtc/rtc/rtc0
[root@tul169p1 ~]# cat /sys/devices/opal-rtc/rtc/rtc0/time
08:10:07
[root@tul169p1 ~]# echo `date '+%s' -d '+ 2 minutes'` > /sys/class/rtc/rtc0/wakealarm
[root@tul169p1 ~]# cat /sys/class/rtc/rtc0/wakealarm
1413274345
[root@tul169p1 ~]#

FSP:
$ smgr mfgState
standby
$ rtim timeofday

System time is valid: 2014/10/14 08:12:04.225115

$ smgr mfgState
ipling
$

CC: devicetree@vger.kernel.org
CC: tglx@linutronix.de
CC: rtc-linux@googlegroups.com
CC: a.zummo@towertech.it
Signed-off-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Documentation/devicetree/bindings/rtc/rtc-opal.txt [new file with mode: 0644]
arch/powerpc/include/asm/opal.h
arch/powerpc/kernel/time.c
arch/powerpc/platforms/powernv/opal-async.c
arch/powerpc/platforms/powernv/opal-rtc.c
arch/powerpc/platforms/powernv/opal-wrappers.S
arch/powerpc/platforms/powernv/opal.c
arch/powerpc/platforms/powernv/setup.c
drivers/rtc/Kconfig
drivers/rtc/Makefile
drivers/rtc/rtc-opal.c [new file with mode: 0644]