Просмотр исходного кода

sh: Add on-chip RTC support for SH7722.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt 16 лет назад
Родитель
Сommit
b4d36a254f
2 измененных файлов с 33 добавлено и 3 удалено
  1. 1 1
      arch/sh/include/cpu-sh4/cpu/rtc.h
  2. 32 2
      arch/sh/kernel/cpu/sh4a/setup-sh7722.c

+ 1 - 1
arch/sh/include/cpu-sh4/cpu/rtc.h

@@ -1,7 +1,7 @@
 #ifndef __ASM_SH_CPU_SH4_RTC_H
 #ifndef __ASM_SH_CPU_SH4_RTC_H
 #define __ASM_SH_CPU_SH4_RTC_H
 #define __ASM_SH_CPU_SH4_RTC_H
 
 
-#ifdef CONFIG_CPU_SUBTYPE_SH7723
+#if defined(CONFIG_CPU_SUBTYPE_SH7722) || defined(CONFIG_CPU_SUBTYPE_SH7723)
 #define rtc_reg_size		sizeof(u16)
 #define rtc_reg_size		sizeof(u16)
 #else
 #else
 #define rtc_reg_size		sizeof(u32)
 #define rtc_reg_size		sizeof(u32)

+ 32 - 2
arch/sh/kernel/cpu/sh4a/setup-sh7722.c

@@ -1,7 +1,7 @@
 /*
 /*
  * SH7722 Setup
  * SH7722 Setup
  *
  *
- *  Copyright (C) 2006 - 2007  Paul Mundt
+ *  Copyright (C) 2006 - 2008  Paul Mundt
  *
  *
  * This file is subject to the terms and conditions of the GNU General Public
  * This file is subject to the terms and conditions of the GNU General Public
  * License.  See the file "COPYING" in the main directory of this archive
  * License.  See the file "COPYING" in the main directory of this archive
@@ -16,6 +16,36 @@
 #include <asm/clock.h>
 #include <asm/clock.h>
 #include <asm/mmzone.h>
 #include <asm/mmzone.h>
 
 
+static struct resource rtc_resources[] = {
+	[0] = {
+		.start	= 0xa465fec0,
+		.end	= 0xa465fec0 + 0x58 - 1,
+		.flags	= IORESOURCE_IO,
+	},
+	[1] = {
+		/* Period IRQ */
+		.start	= 45,
+		.flags	= IORESOURCE_IRQ,
+	},
+	[2] = {
+		/* Carry IRQ */
+		.start	= 46,
+		.flags	= IORESOURCE_IRQ,
+	},
+	[3] = {
+		/* Alarm IRQ */
+		.start	= 44,
+		.flags	= IORESOURCE_IRQ,
+	},
+};
+
+static struct platform_device rtc_device = {
+	.name		= "sh-rtc",
+	.id		= -1,
+	.num_resources	= ARRAY_SIZE(rtc_resources),
+	.resource	= rtc_resources,
+};
+
 static struct resource usbf_resources[] = {
 static struct resource usbf_resources[] = {
 	[0] = {
 	[0] = {
 		.name	= "m66592_udc",
 		.name	= "m66592_udc",
@@ -150,6 +180,7 @@ static struct platform_device sci_device = {
 };
 };
 
 
 static struct platform_device *sh7722_devices[] __initdata = {
 static struct platform_device *sh7722_devices[] __initdata = {
+	&rtc_device,
 	&usbf_device,
 	&usbf_device,
 	&iic_device,
 	&iic_device,
 	&sci_device,
 	&sci_device,
@@ -202,7 +233,6 @@ enum {
 	IRDA, JPU, LCDC,
 	IRDA, JPU, LCDC,
 
 
 	/* interrupt groups */
 	/* interrupt groups */
-
 	SIM, RTC, DMAC0123, VIOVOU, USB, DMAC45, FLCTL, I2C, SDHI,
 	SIM, RTC, DMAC0123, VIOVOU, USB, DMAC45, FLCTL, I2C, SDHI,
 };
 };