aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2007-08-03 01:19:58 -0400
committerPaul Mundt <lethal@linux-sh.org>2007-09-20 22:57:47 -0400
commitad89f87a84040a57c4a78ca2759b364f72f423ab (patch)
treea34207175da4338cc8e4e7b7ea323193e199eb3c /arch/sh
parent7da3b8ef662af6252aa17c55cc0aa6d74cbf02e4 (diff)
rtc: rtc-sh: Support 4-digit year on SH7705/SH7710/SH7712.
All SH-4 parts have a 4-digit year, while the SH-3 parts typically only use a 2-digit one. The SH7705, SH7710, and SH7712 SH-3 parts however opted to extend it to 4-digit and still look and act like an SH-3 RTC in all other ways. This adds a capability flag (RTC_CAP_4_DIGIT_YEAR) that these corner-case CPU subtypes can set in their platform data and cleans up some of the ifdef mess in the driver as a result. Reported-by: Markus Brunner <super.firetwister@gmail.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh')
-rw-r--r--arch/sh/kernel/cpu/sh3/setup-sh7705.c12
-rw-r--r--arch/sh/kernel/cpu/sh3/setup-sh7710.c10
2 files changed, 19 insertions, 3 deletions
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7705.c b/arch/sh/kernel/cpu/sh3/setup-sh7705.c
index 6fc68e77102f..568cc08c254b 100644
--- a/arch/sh/kernel/cpu/sh3/setup-sh7705.c
+++ b/arch/sh/kernel/cpu/sh3/setup-sh7705.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * SH7705 Setup 2 * SH7705 Setup
3 * 3 *
4 * Copyright (C) 2006 Paul Mundt 4 * Copyright (C) 2006, 2007 Paul Mundt
5 * Copyright (C) 2007 Nobuhiro Iwamatsu 5 * Copyright (C) 2007 Nobuhiro Iwamatsu
6 * 6 *
7 * This file is subject to the terms and conditions of the GNU General Public 7 * This file is subject to the terms and conditions of the GNU General Public
@@ -13,8 +13,9 @@
13#include <linux/irq.h> 13#include <linux/irq.h>
14#include <linux/serial.h> 14#include <linux/serial.h>
15#include <asm/sci.h> 15#include <asm/sci.h>
16#include <asm/rtc.h>
16 17
17enum{ 18enum {
18 UNUSED = 0, 19 UNUSED = 0,
19 20
20 /* interrupt sources */ 21 /* interrupt sources */
@@ -138,11 +139,18 @@ static struct resource rtc_resources[] = {
138 }, 139 },
139}; 140};
140 141
142static struct sh_rtc_platform_info rtc_info = {
143 .capabilities = RTC_CAP_4_DIGIT_YEAR,
144};
145
141static struct platform_device rtc_device = { 146static struct platform_device rtc_device = {
142 .name = "sh-rtc", 147 .name = "sh-rtc",
143 .id = -1, 148 .id = -1,
144 .num_resources = ARRAY_SIZE(rtc_resources), 149 .num_resources = ARRAY_SIZE(rtc_resources),
145 .resource = rtc_resources, 150 .resource = rtc_resources,
151 .dev = {
152 .platform_data = &rtc_info,
153 },
146}; 154};
147 155
148static struct platform_device *sh7705_devices[] __initdata = { 156static struct platform_device *sh7705_devices[] __initdata = {
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7710.c b/arch/sh/kernel/cpu/sh3/setup-sh7710.c
index 07f26ab75d97..eb55ac9dbf71 100644
--- a/arch/sh/kernel/cpu/sh3/setup-sh7710.c
+++ b/arch/sh/kernel/cpu/sh3/setup-sh7710.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * SH3 Setup code for SH7710, SH7712 2 * SH3 Setup code for SH7710, SH7712
3 * 3 *
4 * Copyright (C) 2006 Paul Mundt 4 * Copyright (C) 2006, 2007 Paul Mundt
5 * Copyright (C) 2007 Nobuhiro Iwamatsu 5 * Copyright (C) 2007 Nobuhiro Iwamatsu
6 * 6 *
7 * This file is subject to the terms and conditions of the GNU General Public 7 * This file is subject to the terms and conditions of the GNU General Public
@@ -13,6 +13,7 @@
13#include <linux/irq.h> 13#include <linux/irq.h>
14#include <linux/serial.h> 14#include <linux/serial.h>
15#include <asm/sci.h> 15#include <asm/sci.h>
16#include <asm/rtc.h>
16 17
17enum { 18enum {
18 UNUSED = 0, 19 UNUSED = 0,
@@ -130,11 +131,18 @@ static struct resource rtc_resources[] = {
130 }, 131 },
131}; 132};
132 133
134static struct sh_rtc_platform_info rtc_info = {
135 .capabilities = RTC_CAP_4_DIGIT_YEAR,
136};
137
133static struct platform_device rtc_device = { 138static struct platform_device rtc_device = {
134 .name = "sh-rtc", 139 .name = "sh-rtc",
135 .id = -1, 140 .id = -1,
136 .num_resources = ARRAY_SIZE(rtc_resources), 141 .num_resources = ARRAY_SIZE(rtc_resources),
137 .resource = rtc_resources, 142 .resource = rtc_resources,
143 .dev = {
144 .platform_data = &rtc_info,
145 },
138}; 146};
139 147
140static struct plat_sci_port sci_platform_data[] = { 148static struct plat_sci_port sci_platform_data[] = {