MIPS: Alchemy: Add RTC device to all devboards
authorManuel Lauss <manuel.lauss@googlemail.com>
Thu, 10 Nov 2011 12:06:22 +0000 (12:06 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Wed, 7 Dec 2011 22:02:07 +0000 (22:02 +0000)
All Devboards can use the 32kHz counter as a RTC device.

Also delete the custom CMOS RTC header, which can be used for the
DS1693 on the PB1500.  But since it doesn't have a buffer battery
it is as useful as the on-chip RTC which I prefer.

Signed-off-by: Manuel Lauss <manuel.lauss@googlemail.com>
To: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/2874/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/alchemy/devboards/db1200.c
arch/mips/alchemy/devboards/db1300.c
arch/mips/alchemy/devboards/db1550.c
arch/mips/alchemy/devboards/platform.c
arch/mips/include/asm/mach-pb1x00/mc146818rtc.h [deleted file]

index ec481f3..1181241 100644 (file)
@@ -312,13 +312,6 @@ static struct platform_device db1200_ide_dev = {
 
 /**********************************************************************/
 
-static struct platform_device db1200_rtc_dev = {
-       .name   = "rtc-au1xxx",
-       .id     = -1,
-};
-
-/**********************************************************************/
-
 /* SD carddetects:  they're supposed to be edge-triggered, but ack
  * doesn't seem to work (CPLD Rev 2).  Instead, the screaming one
  * is disabled and its counterpart enabled.  The 500ms timeout is
@@ -755,7 +748,6 @@ static struct platform_device *db1200_devs[] __initdata = {
        &db1200_mmc0_dev,
        &au1200_lcd_dev,
        &db1200_eth_dev,
-       &db1200_rtc_dev,
        &db1200_nand_dev,
        &db1200_audiodma_dev,
        &db1200_audio_dev,
index 7f3dacb..0893f2a 100644 (file)
@@ -386,13 +386,6 @@ static struct platform_device db1300_5waysw_dev = {
 
 /**********************************************************************/
 
-static struct platform_device db1300_rtc_dev = {
-       .name   = "rtc-au1xxx",
-       .id     = -1,
-};
-
-/**********************************************************************/
-
 static struct pata_platform_info db1300_ide_info = {
        .ioport_shift   = DB1300_IDE_REG_SHIFT,
 };
@@ -697,7 +690,6 @@ static struct platform_device *db1300_dev[] __initdata = {
        &db1300_eth_dev,
        &db1300_i2c_dev,
        &db1300_5waysw_dev,
-       &db1300_rtc_dev,
        &db1300_nand_dev,
        &db1300_ide_dev,
        &db1300_sd0_dev,
index a4755b0..6815d07 100644 (file)
@@ -372,13 +372,6 @@ static struct platform_device db1550_sndi2s_dev = {
 
 /**********************************************************************/
 
-static struct platform_device db1550_rtc_dev = {
-       .name   = "rtc-au1xxx",
-       .id     = -1,
-};
-
-/**********************************************************************/
-
 static int db1550_map_pci_irq(const struct pci_dev *d, u8 slot, u8 pin)
 {
        if ((slot < 11) || (slot > 13) || pin == 0)
@@ -427,7 +420,6 @@ static struct platform_device db1550_pci_host_dev = {
 /**********************************************************************/
 
 static struct platform_device *db1550_devs[] __initdata = {
-       &db1550_rtc_dev,
        &db1550_nand_dev,
        &db1550_i2c_dev,
        &db1550_ac97_dev,
index 49a4b32..621f70a 100644 (file)
 #include <asm/reboot.h>
 #include <asm/mach-db1x00/bcsr.h>
 
+
+static struct platform_device db1x00_rtc_dev = {
+       .name   = "rtc-au1xxx",
+       .id     = -1,
+};
+
+
 static void db1x_power_off(void)
 {
        bcsr_write(BCSR_RESETS, 0);
@@ -25,7 +32,7 @@ static void db1x_reset(char *c)
        bcsr_write(BCSR_SYSTEM, 0);
 }
 
-static int __init db1x_poweroff_setup(void)
+static int __init db1x_late_setup(void)
 {
        if (!pm_power_off)
                pm_power_off = db1x_power_off;
@@ -34,9 +41,11 @@ static int __init db1x_poweroff_setup(void)
        if (!_machine_restart)
                _machine_restart = db1x_reset;
 
+       platform_device_register(&db1x00_rtc_dev);
+
        return 0;
 }
-late_initcall(db1x_poweroff_setup);
+device_initcall(db1x_late_setup);
 
 /* register a pcmcia socket */
 int __init db1x_register_pcmcia_socket(phys_addr_t pcmcia_attr_start,
diff --git a/arch/mips/include/asm/mach-pb1x00/mc146818rtc.h b/arch/mips/include/asm/mach-pb1x00/mc146818rtc.h
deleted file mode 100644 (file)
index 622c587..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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
- * for more details.
- *
- * Copyright (C) 1998, 2001, 03 by Ralf Baechle
- *
- * RTC routines for PC style attached Dallas chip.
- */
-#ifndef __ASM_MACH_AU1XX_MC146818RTC_H
-#define __ASM_MACH_AU1XX_MC146818RTC_H
-
-#include <asm/io.h>
-#include <asm/mach-au1x00/au1000.h>
-
-#define RTC_PORT(x)    (0x0c000000 + (x))
-#define RTC_IRQ                8
-#define PB1500_RTC_ADDR 0x0c000000
-
-static inline unsigned char CMOS_READ(unsigned long offset)
-{
-       offset <<= 2;
-       return (u8)(au_readl(offset + PB1500_RTC_ADDR) & 0xff);
-}
-
-static inline void CMOS_WRITE(unsigned char data, unsigned long offset)
-{
-       offset <<= 2;
-       au_writel(data, offset + PB1500_RTC_ADDR);
-}
-
-#define RTC_ALWAYS_BCD 1
-
-#endif /* __ASM_MACH_AU1XX_MC146818RTC_H */