Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OS
U-Boot.Mirror
提交
535cfa4f
U
U-Boot.Mirror
项目概览
OS
/
U-Boot.Mirror
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
U-Boot.Mirror
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
535cfa4f
编写于
8月 25, 2008
作者:
G
Gururaja Hebbar K R
提交者:
Jean-Christophe PLAGNIOL-VILLARD
8月 25, 2008
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add ARM AMBA PL031 RTC Support
Signed-off-by:
N
Gururaja Hebbar K R
<
gururajakr@sanyo.co.in
>
上级
e3941167
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
124 addition
and
0 deletion
+124
-0
drivers/rtc/Makefile
drivers/rtc/Makefile
+1
-0
drivers/rtc/pl031.c
drivers/rtc/pl031.c
+123
-0
未找到文件。
drivers/rtc/Makefile
浏览文件 @
535cfa4f
...
...
@@ -52,6 +52,7 @@ COBJS-$(CONFIG_RTC_MK48T59) += mk48t59.o
COBJS-$(CONFIG_RTC_MPC5200)
+=
mpc5xxx.o
COBJS-$(CONFIG_RTC_MPC8xx)
+=
mpc8xx.o
COBJS-$(CONFIG_RTC_PCF8563)
+=
pcf8563.o
COBJS-$(CONFIG_RTC_PL031)
+=
pl031.o
COBJS-$(CONFIG_RTC_RS5C372A)
+=
rs5c372.o
COBJS-$(CONFIG_RTC_RX8025)
+=
rx8025.o
COBJS-$(CONFIG_RTC_S3C24X0)
+=
s3c24x0_rtc.o
...
...
drivers/rtc/pl031.c
0 → 100755
浏览文件 @
535cfa4f
/*
* (C) Copyright 2008
* Gururaja Hebbar gururajakr@sanyo.co.in
*
* reference linux-2.6.20.6/drivers/rtc/rtc-pl031.c
*
* See file CREDITS for list of people who contributed to this
* project.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*/
#include <common.h>
#include <command.h>
#include <rtc.h>
#if defined(CONFIG_CMD_DATE)
#ifndef CFG_RTC_PL031_BASE
#error CFG_RTC_PL031_BASE is not defined!
#endif
/*
* Register definitions
*/
#define RTC_DR 0x00
/* Data read register */
#define RTC_MR 0x04
/* Match register */
#define RTC_LR 0x08
/* Data load register */
#define RTC_CR 0x0c
/* Control register */
#define RTC_IMSC 0x10
/* Interrupt mask and set register */
#define RTC_RIS 0x14
/* Raw interrupt status register */
#define RTC_MIS 0x18
/* Masked interrupt status register */
#define RTC_ICR 0x1c
/* Interrupt clear register */
#define RTC_CR_START (1 << 0)
#define RTC_WRITE_REG(addr, val) \
(*(volatile unsigned int *)(CFG_RTC_PL031_BASE + (addr)) = (val))
#define RTC_READ_REG(addr) \
(*(volatile unsigned int *)(CFG_RTC_PL031_BASE + (addr)))
static
int
pl031_initted
=
0
;
/* Enable RTC Start in Control register*/
void
rtc_init
(
void
)
{
RTC_WRITE_REG
(
RTC_CR
,
RTC_CR_START
);
pl031_initted
=
1
;
}
/*
* Reset the RTC. We set the date back to 1970-01-01.
*/
void
rtc_reset
(
void
)
{
RTC_WRITE_REG
(
RTC_LR
,
0x00
);
if
(
!
pl031_initted
)
rtc_init
();
}
/*
* Set the RTC
*/
void
rtc_set
(
struct
rtc_time
*
tmp
)
{
unsigned
long
tim
;
if
(
!
pl031_initted
)
rtc_init
();
if
(
tmp
==
NULL
)
{
puts
(
"Error setting the date/time
\n
"
);
return
;
}
/* Calculate number of seconds this incoming time represents */
tim
=
mktime
(
tmp
->
tm_year
,
tmp
->
tm_mon
,
tmp
->
tm_mday
,
tmp
->
tm_hour
,
tmp
->
tm_min
,
tmp
->
tm_sec
);
RTC_WRITE_REG
(
RTC_LR
,
tim
);
}
/*
* Get the current time from the RTC
*/
int
rtc_get
(
struct
rtc_time
*
tmp
)
{
ulong
tim
;
if
(
!
pl031_initted
)
rtc_init
();
if
(
tmp
==
NULL
)
{
puts
(
"Error getting the date/time
\n
"
);
return
-
1
;
}
tim
=
RTC_READ_REG
(
RTC_DR
);
to_tm
(
tim
,
tmp
);
debug
(
"Get DATE: %4d-%02d-%02d (wday=%d) TIME: %2d:%02d:%02d
\n
"
,
tmp
->
tm_year
,
tmp
->
tm_mon
,
tmp
->
tm_mday
,
tmp
->
tm_wday
,
tmp
->
tm_hour
,
tmp
->
tm_min
,
tmp
->
tm_sec
);
return
0
;
}
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录