From: Wu Zhangjin <wuzhangjin@gmail.com>
To: linux-mips@linux-mips.org, Ralf Baechle <ralf@linux-mips.org>
Cc: Arnaud Patard <apatard@mandriva.com>,
loongson-dev@googlegroups.com, zhangfx@lemote.com,
yanh@lemote.com, Philippe Vachon <philippe@cowpig.ca>,
Zhang Le <r0bertz@gentoo.org>, Erwan Lerale <erwan@thiscow.com>
Subject: [PATCH 09/30] loongson: enable Real Time Clock Support
Date: Sat, 16 May 2009 06:06:00 +0800 [thread overview]
Message-ID: <1242425160.10164.150.camel@falcon> (raw)
>From 1a13dd55ecc7d3d886cbf39e43acdd0585ca5285 Mon Sep 17 00:00:00 2001
From: Wu Zhangjin <wuzhangjin@gmail.com>
Date: Sat, 16 May 2009 00:51:39 +0800
Subject: [PATCH 09/30] loongson: enable Real Time Clock Support of
fuloong(2e)
by default, RTC_LIB is selected by MIPS, but if RTC_LIB is enabled,
Enhanced Real Time Clock Support(RTC) will be disabled, so, to enable
it, not select RTC_LIB in LEMOTE_FULOONG2E will fix this problem.
RTC support is needed by some tools like hwclock, if you want hwclock
work well, these two jobs need to do:
kernel configuration:
Device Drivers --->
Character devices --->
<*> Enhanced Real Time Clock Support (legacy PC RTC driver)
user-space configuration:
$ mknod /dev/rtc c 10 135
there is another RTC support in linux, whose kernel option is RTC_CLASS,
it should be fixed for fuloong(2e) via enabling the binary mode and
register the RTC device resource.
to make hwclock work with it normally, please do:
kernel configuration:
Device Drivers --->
<*> Real Time Clock --->
<*> PC-style 'CMOS'
user-space configuration:
$ mknod /dev/rtc0 c 254 0
/dev/rtc0 is the default RTC device file.
---
arch/mips/Kconfig | 2 +-
arch/mips/loongson/fuloong-2e/Makefile | 7 ++++
arch/mips/loongson/fuloong-2e/rtc.c | 54
++++++++++++++++++++++++++++++++
drivers/rtc/rtc-cmos.c | 2 +-
4 files changed, 63 insertions(+), 2 deletions(-)
create mode 100644 arch/mips/loongson/fuloong-2e/rtc.c
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index d9ecb44..974ce41 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -6,7 +6,7 @@ config MIPS
select HAVE_ARCH_KGDB
# Horrible source of confusion. Die, die, die ...
select EMBEDDED
- select RTC_LIB
+ select RTC_LIB if !LEMOTE_FULOONG2E
mainmenu "Linux/MIPS Kernel Configuration"
diff --git a/arch/mips/loongson/fuloong-2e/Makefile
b/arch/mips/loongson/fuloong-2e/Makefile
index 88002a6..2ab49cb 100644
--- a/arch/mips/loongson/fuloong-2e/Makefile
+++ b/arch/mips/loongson/fuloong-2e/Makefile
@@ -10,4 +10,11 @@ obj-y += setup.o init.o cmdline.o time.o reset.o
irq.o \
#
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
+#
+# Enable RTC Class support
+#
+# please enable CONFIG_RTC_DRV_CMOS
+#
+obj-$(CONFIG_RTC_DRV_CMOS) += rtc.o
+
EXTRA_CFLAGS += -Werror
diff --git a/arch/mips/loongson/fuloong-2e/rtc.c
b/arch/mips/loongson/fuloong-2e/rtc.c
new file mode 100644
index 0000000..c2f413f
--- /dev/null
+++ b/arch/mips/loongson/fuloong-2e/rtc.c
@@ -0,0 +1,54 @@
+/*
+ * Registration of Cobalt RTC platform device.
+ *
+ * Copyright (C) 2007 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
+ * Copyright (C) 2009 Wu Zhangjin <wuzj@lemote.com>
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA
+ */
+
+#include <linux/init.h>
+#include <linux/ioport.h>
+#include <linux/mc146818rtc.h>
+#include <linux/platform_device.h>
+
+static struct resource rtc_cmos_resource[] = {
+ {
+ .start = RTC_PORT(0),
+ .end = RTC_PORT(1),
+ .flags = IORESOURCE_IO,
+ },
+ {
+ .start = RTC_IRQ,
+ .end = RTC_IRQ,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+static struct platform_device rtc_cmos_device = {
+ .name = "rtc_cmos",
+ .id = -1,
+ .num_resources = ARRAY_SIZE(rtc_cmos_resource),
+ .resource = rtc_cmos_resource
+};
+
+static __init int rtc_cmos_init(void)
+{
+ platform_device_register(&rtc_cmos_device);
+
+ return 0;
+}
+
+device_initcall(rtc_cmos_init);
diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
index b6d35f5..1718526 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -757,7 +757,7 @@ cmos_do_probe(struct device *dev, struct resource
*ports, int rtc_irq)
* <asm-generic/rtc.h> doesn't know 12-hour mode either.
*/
if (is_valid_irq(rtc_irq) &&
- (!(rtc_control & RTC_24H) || (rtc_control & (RTC_DM_BINARY)))) {
+ (!(rtc_control & RTC_24H))) {
dev_dbg(dev, "only 24-hr BCD mode supported\n");
retval = -ENXIO;
goto cleanup1;
--
1.6.2.1
WARNING: multiple messages have this Message-ID (diff)
From: Wu Zhangjin <wuzhangjin@gmail.com>
To: linux-mips@linux-mips.org, Ralf Baechle <ralf@linux-mips.org>
Cc: Arnaud Patard <apatard@mandriva.com>,
loongson-dev@googlegroups.com, zhangfx@lemote.com,
yanh@lemote.com, Philippe Vachon <philippe@cowpig.ca>,
Zhang Le <r0bertz@gentoo.org>, Erwan Lerale <erwan@thiscow.com>
Subject: [PATCH 09/30] loongson: enable Real Time Clock Support
Date: Sat, 16 May 2009 06:06:00 +0800 [thread overview]
Message-ID: <1242425160.10164.150.camel@falcon> (raw)
Message-ID: <20090515220600.EA_j0ZZHl8PUvWYLq7enIN5wlt2yzuL_7_A149crMRA@z> (raw)
From 1a13dd55ecc7d3d886cbf39e43acdd0585ca5285 Mon Sep 17 00:00:00 2001
From: Wu Zhangjin <wuzhangjin@gmail.com>
Date: Sat, 16 May 2009 00:51:39 +0800
Subject: [PATCH 09/30] loongson: enable Real Time Clock Support of
fuloong(2e)
by default, RTC_LIB is selected by MIPS, but if RTC_LIB is enabled,
Enhanced Real Time Clock Support(RTC) will be disabled, so, to enable
it, not select RTC_LIB in LEMOTE_FULOONG2E will fix this problem.
RTC support is needed by some tools like hwclock, if you want hwclock
work well, these two jobs need to do:
kernel configuration:
Device Drivers --->
Character devices --->
<*> Enhanced Real Time Clock Support (legacy PC RTC driver)
user-space configuration:
$ mknod /dev/rtc c 10 135
there is another RTC support in linux, whose kernel option is RTC_CLASS,
it should be fixed for fuloong(2e) via enabling the binary mode and
register the RTC device resource.
to make hwclock work with it normally, please do:
kernel configuration:
Device Drivers --->
<*> Real Time Clock --->
<*> PC-style 'CMOS'
user-space configuration:
$ mknod /dev/rtc0 c 254 0
/dev/rtc0 is the default RTC device file.
---
arch/mips/Kconfig | 2 +-
arch/mips/loongson/fuloong-2e/Makefile | 7 ++++
arch/mips/loongson/fuloong-2e/rtc.c | 54
++++++++++++++++++++++++++++++++
drivers/rtc/rtc-cmos.c | 2 +-
4 files changed, 63 insertions(+), 2 deletions(-)
create mode 100644 arch/mips/loongson/fuloong-2e/rtc.c
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index d9ecb44..974ce41 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -6,7 +6,7 @@ config MIPS
select HAVE_ARCH_KGDB
# Horrible source of confusion. Die, die, die ...
select EMBEDDED
- select RTC_LIB
+ select RTC_LIB if !LEMOTE_FULOONG2E
mainmenu "Linux/MIPS Kernel Configuration"
diff --git a/arch/mips/loongson/fuloong-2e/Makefile
b/arch/mips/loongson/fuloong-2e/Makefile
index 88002a6..2ab49cb 100644
--- a/arch/mips/loongson/fuloong-2e/Makefile
+++ b/arch/mips/loongson/fuloong-2e/Makefile
@@ -10,4 +10,11 @@ obj-y += setup.o init.o cmdline.o time.o reset.o
irq.o \
#
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
+#
+# Enable RTC Class support
+#
+# please enable CONFIG_RTC_DRV_CMOS
+#
+obj-$(CONFIG_RTC_DRV_CMOS) += rtc.o
+
EXTRA_CFLAGS += -Werror
diff --git a/arch/mips/loongson/fuloong-2e/rtc.c
b/arch/mips/loongson/fuloong-2e/rtc.c
new file mode 100644
index 0000000..c2f413f
--- /dev/null
+++ b/arch/mips/loongson/fuloong-2e/rtc.c
@@ -0,0 +1,54 @@
+/*
+ * Registration of Cobalt RTC platform device.
+ *
+ * Copyright (C) 2007 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
+ * Copyright (C) 2009 Wu Zhangjin <wuzj@lemote.com>
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA
+ */
+
+#include <linux/init.h>
+#include <linux/ioport.h>
+#include <linux/mc146818rtc.h>
+#include <linux/platform_device.h>
+
+static struct resource rtc_cmos_resource[] = {
+ {
+ .start = RTC_PORT(0),
+ .end = RTC_PORT(1),
+ .flags = IORESOURCE_IO,
+ },
+ {
+ .start = RTC_IRQ,
+ .end = RTC_IRQ,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+static struct platform_device rtc_cmos_device = {
+ .name = "rtc_cmos",
+ .id = -1,
+ .num_resources = ARRAY_SIZE(rtc_cmos_resource),
+ .resource = rtc_cmos_resource
+};
+
+static __init int rtc_cmos_init(void)
+{
+ platform_device_register(&rtc_cmos_device);
+
+ return 0;
+}
+
+device_initcall(rtc_cmos_init);
diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
index b6d35f5..1718526 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -757,7 +757,7 @@ cmos_do_probe(struct device *dev, struct resource
*ports, int rtc_irq)
* <asm-generic/rtc.h> doesn't know 12-hour mode either.
*/
if (is_valid_irq(rtc_irq) &&
- (!(rtc_control & RTC_24H) || (rtc_control & (RTC_DM_BINARY)))) {
+ (!(rtc_control & RTC_24H))) {
dev_dbg(dev, "only 24-hr BCD mode supported\n");
retval = -ENXIO;
goto cleanup1;
--
1.6.2.1
next reply other threads:[~2009-05-15 22:06 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-15 22:06 Wu Zhangjin [this message]
2009-05-15 22:06 ` [PATCH 09/30] loongson: enable Real Time Clock Support Wu Zhangjin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1242425160.10164.150.camel@falcon \
--to=wuzhangjin@gmail.com \
--cc=apatard@mandriva.com \
--cc=erwan@thiscow.com \
--cc=linux-mips@linux-mips.org \
--cc=loongson-dev@googlegroups.com \
--cc=philippe@cowpig.ca \
--cc=r0bertz@gentoo.org \
--cc=ralf@linux-mips.org \
--cc=yanh@lemote.com \
--cc=zhangfx@lemote.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.