Files
linux-legacy-genesi/include/linux/pmic_rtc.h
Rob Herring be0524d38f ENGR00117389 Port 5.0.0 release to 2.6.31
This is i.MX BSP 5.0.0 release ported to 2.6.31

Signed-off-by: Rob Herring <r.herring@freescale.com>
Signed-off-by: Alan Tull <r80115@freescale.com>
Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
2010-08-10 11:44:41 -05:00

154 lines
3.8 KiB
C

/*
* Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved.
*/
/*
* The code contained herein is licensed under the GNU Lesser General
* Public License. You may obtain a copy of the GNU Lesser General
* Public License Version 2.1 or later at the following locations:
*
* http://www.opensource.org/licenses/lgpl-license.html
* http://www.gnu.org/copyleft/lgpl.html
*/
#ifndef __ASM_ARCH_MXC_PMIC_RTC_H__
#define __ASM_ARCH_MXC_PMIC_RTC_H__
/*!
* @defgroup PMIC_RTC PMIC RTC Driver
* @ingroup PMIC_DRVRS
*/
/*!
* @file arch-mxc/pmic_rtc.h
* @brief This is the header of PMIC RTC driver.
*
* @ingroup PMIC_RTC
*/
/*
* Includes
*/
#include <linux/ioctl.h>
#include <linux/pmic_status.h>
#include <linux/pmic_external.h>
#define PMIC_RTC_SET_TIME _IOWR('p',0xd1, int)
#define PMIC_RTC_GET_TIME _IOWR('p',0xd2, int)
#define PMIC_RTC_SET_ALARM _IOWR('p',0xd3, int)
#define PMIC_RTC_GET_ALARM _IOWR('p',0xd4, int)
#define PMIC_RTC_WAIT_ALARM _IOWR('p',0xd5, int)
#define PMIC_RTC_ALARM_REGISTER _IOWR('p',0xd6, int)
#define PMIC_RTC_ALARM_UNREGISTER _IOWR('p',0xd7, int)
/*!
* This enumeration define all RTC interrupt
*/
typedef enum {
/*!
* Time of day alarm
*/
RTC_IT_ALARM,
/*!
* 1 Hz timetick
*/
RTC_IT_1HZ,
/*!
* RTC reset occurred
*/
RTC_IT_RST,
} t_rtc_int;
/*
* RTC PMIC API
*/
/* EXPORTED FUNCTIONS */
#ifdef __KERNEL__
/*!
* This function set the real time clock of PMIC
*
* @param pmic_time value of date and time
*
* @return This function returns PMIC_STATUS if successful.
*/
PMIC_STATUS pmic_rtc_set_time(struct timeval *pmic_time);
/*!
* This function get the real time clock of PMIC
*
* @param pmic_time return value of date and time
*
* @return This function returns PMIC_STATUS if successful.
*/
PMIC_STATUS pmic_rtc_get_time(struct timeval *pmic_time);
/*!
* This function set the real time clock alarm of PMIC
*
* @param pmic_time value of date and time
*
* @return This function returns PMIC_STATUS if successful.
*/
PMIC_STATUS pmic_rtc_set_time_alarm(struct timeval *pmic_time);
/*!
* This function get the real time clock alarm of PMIC
*
* @param pmic_time return value of date and time
*
* @return This function returns PMIC_STATUS if successful.
*/
PMIC_STATUS pmic_rtc_get_time_alarm(struct timeval *pmic_time);
/*!
* This function wait the Alarm event
*
* @return This function returns PMIC_STATUS if successful.
*/
PMIC_STATUS pmic_rtc_wait_alarm(void);
/*!
* This function is used to un/subscribe on RTC event IT.
*
* @param event type of event.
* @param callback event callback function.
* @param sub define if Un/subscribe event.
*
* @return This function returns PMIC_STATUS if successful.
*/
PMIC_STATUS pmic_rtc_event(t_rtc_int event, void *callback, bool sub);
/*!
* This function is used to subscribe on RTC event IT.
*
* @param event type of event.
* @param callback event callback function.
*
* @return This function returns PMIC_STATUS if successful.
*/
PMIC_STATUS pmic_rtc_event_sub(t_rtc_int event, void *callback);
/*!
* This function is used to un-subscribe on RTC event IT.
*
* @param event type of event.
* @param callback event callback function.
*
* @return This function returns PMIC_STATUS if successful.
*/
PMIC_STATUS pmic_rtc_event_unsub(t_rtc_int event, void *callback);
/*!
* This function is used to tell if PMIC RTC has been correctly loaded.
*
* @return This function returns 1 if RTC was successfully loaded
* 0 otherwise.
*/
int pmic_rtc_loaded(void);
#endif /* __KERNEL__ */
#endif /* __ASM_ARCH_MXC_PMIC_RTC_H__ */