aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorManuel Lauss <manuel.lauss@googlemail.com>2011-11-10 07:06:22 -0500
committerRalf Baechle <ralf@linux-mips.org>2011-12-07 17:02:07 -0500
commit1c043f16a01c144305e952025e883b55706f2450 (patch)
tree1497c03fbde8d92f8144fd99fd4e9cacff63b3c0 /arch
parentc9af5144ce5e6270a8bffad348cf2f20648f5f67 (diff)
MIPS: Alchemy: Add RTC device to all devboards
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>
Diffstat (limited to 'arch')
-rw-r--r--arch/mips/alchemy/devboards/db1200.c8
-rw-r--r--arch/mips/alchemy/devboards/db1300.c8
-rw-r--r--arch/mips/alchemy/devboards/db1550.c8
-rw-r--r--arch/mips/alchemy/devboards/platform.c13
-rw-r--r--arch/mips/include/asm/mach-pb1x00/mc146818rtc.h34
5 files changed, 11 insertions, 60 deletions
diff --git a/arch/mips/alchemy/devboards/db1200.c b/arch/mips/alchemy/devboards/db1200.c
index ec481f33aecc..1181241c5052 100644
--- a/arch/mips/alchemy/devboards/db1200.c
+++ b/arch/mips/alchemy/devboards/db1200.c
@@ -312,13 +312,6 @@ static struct platform_device db1200_ide_dev = {
312 312
313/**********************************************************************/ 313/**********************************************************************/
314 314
315static struct platform_device db1200_rtc_dev = {
316 .name = "rtc-au1xxx",
317 .id = -1,
318};
319
320/**********************************************************************/
321
322/* SD carddetects: they're supposed to be edge-triggered, but ack 315/* SD carddetects: they're supposed to be edge-triggered, but ack
323 * doesn't seem to work (CPLD Rev 2). Instead, the screaming one 316 * doesn't seem to work (CPLD Rev 2). Instead, the screaming one
324 * is disabled and its counterpart enabled. The 500ms timeout is 317 * is disabled and its counterpart enabled. The 500ms timeout is
@@ -755,7 +748,6 @@ static struct platform_device *db1200_devs[] __initdata = {
755 &db1200_mmc0_dev, 748 &db1200_mmc0_dev,
756 &au1200_lcd_dev, 749 &au1200_lcd_dev,
757 &db1200_eth_dev, 750 &db1200_eth_dev,
758 &db1200_rtc_dev,
759 &db1200_nand_dev, 751 &db1200_nand_dev,
760 &db1200_audiodma_dev, 752 &db1200_audiodma_dev,
761 &db1200_audio_dev, 753 &db1200_audio_dev,
diff --git a/arch/mips/alchemy/devboards/db1300.c b/arch/mips/alchemy/devboards/db1300.c
index 7f3dacb60ea5..0893f2af0d01 100644
--- a/arch/mips/alchemy/devboards/db1300.c
+++ b/arch/mips/alchemy/devboards/db1300.c
@@ -386,13 +386,6 @@ static struct platform_device db1300_5waysw_dev = {
386 386
387/**********************************************************************/ 387/**********************************************************************/
388 388
389static struct platform_device db1300_rtc_dev = {
390 .name = "rtc-au1xxx",
391 .id = -1,
392};
393
394/**********************************************************************/
395
396static struct pata_platform_info db1300_ide_info = { 389static struct pata_platform_info db1300_ide_info = {
397 .ioport_shift = DB1300_IDE_REG_SHIFT, 390 .ioport_shift = DB1300_IDE_REG_SHIFT,
398}; 391};
@@ -697,7 +690,6 @@ static struct platform_device *db1300_dev[] __initdata = {
697 &db1300_eth_dev, 690 &db1300_eth_dev,
698 &db1300_i2c_dev, 691 &db1300_i2c_dev,
699 &db1300_5waysw_dev, 692 &db1300_5waysw_dev,
700 &db1300_rtc_dev,
701 &db1300_nand_dev, 693 &db1300_nand_dev,
702 &db1300_ide_dev, 694 &db1300_ide_dev,
703 &db1300_sd0_dev, 695 &db1300_sd0_dev,
diff --git a/arch/mips/alchemy/devboards/db1550.c b/arch/mips/alchemy/devboards/db1550.c
index a4755b0570a1..6815d0783cd8 100644
--- a/arch/mips/alchemy/devboards/db1550.c
+++ b/arch/mips/alchemy/devboards/db1550.c
@@ -372,13 +372,6 @@ static struct platform_device db1550_sndi2s_dev = {
372 372
373/**********************************************************************/ 373/**********************************************************************/
374 374
375static struct platform_device db1550_rtc_dev = {
376 .name = "rtc-au1xxx",
377 .id = -1,
378};
379
380/**********************************************************************/
381
382static int db1550_map_pci_irq(const struct pci_dev *d, u8 slot, u8 pin) 375static int db1550_map_pci_irq(const struct pci_dev *d, u8 slot, u8 pin)
383{ 376{
384 if ((slot < 11) || (slot > 13) || pin == 0) 377 if ((slot < 11) || (slot > 13) || pin == 0)
@@ -427,7 +420,6 @@ static struct platform_device db1550_pci_host_dev = {
427/**********************************************************************/ 420/**********************************************************************/
428 421
429static struct platform_device *db1550_devs[] __initdata = { 422static struct platform_device *db1550_devs[] __initdata = {
430 &db1550_rtc_dev,
431 &db1550_nand_dev, 423 &db1550_nand_dev,
432 &db1550_i2c_dev, 424 &db1550_i2c_dev,
433 &db1550_ac97_dev, 425 &db1550_ac97_dev,
diff --git a/arch/mips/alchemy/devboards/platform.c b/arch/mips/alchemy/devboards/platform.c
index 49a4b3244d8e..621f70afb63a 100644
--- a/arch/mips/alchemy/devboards/platform.c
+++ b/arch/mips/alchemy/devboards/platform.c
@@ -13,6 +13,13 @@
13#include <asm/reboot.h> 13#include <asm/reboot.h>
14#include <asm/mach-db1x00/bcsr.h> 14#include <asm/mach-db1x00/bcsr.h>
15 15
16
17static struct platform_device db1x00_rtc_dev = {
18 .name = "rtc-au1xxx",
19 .id = -1,
20};
21
22
16static void db1x_power_off(void) 23static void db1x_power_off(void)
17{ 24{
18 bcsr_write(BCSR_RESETS, 0); 25 bcsr_write(BCSR_RESETS, 0);
@@ -25,7 +32,7 @@ static void db1x_reset(char *c)
25 bcsr_write(BCSR_SYSTEM, 0); 32 bcsr_write(BCSR_SYSTEM, 0);
26} 33}
27 34
28static int __init db1x_poweroff_setup(void) 35static int __init db1x_late_setup(void)
29{ 36{
30 if (!pm_power_off) 37 if (!pm_power_off)
31 pm_power_off = db1x_power_off; 38 pm_power_off = db1x_power_off;
@@ -34,9 +41,11 @@ static int __init db1x_poweroff_setup(void)
34 if (!_machine_restart) 41 if (!_machine_restart)
35 _machine_restart = db1x_reset; 42 _machine_restart = db1x_reset;
36 43
44 platform_device_register(&db1x00_rtc_dev);
45
37 return 0; 46 return 0;
38} 47}
39late_initcall(db1x_poweroff_setup); 48device_initcall(db1x_late_setup);
40 49
41/* register a pcmcia socket */ 50/* register a pcmcia socket */
42int __init db1x_register_pcmcia_socket(phys_addr_t pcmcia_attr_start, 51int __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
index 622c58710e5b..000000000000
--- a/arch/mips/include/asm/mach-pb1x00/mc146818rtc.h
+++ /dev/null
@@ -1,34 +0,0 @@
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 1998, 2001, 03 by Ralf Baechle
7 *
8 * RTC routines for PC style attached Dallas chip.
9 */
10#ifndef __ASM_MACH_AU1XX_MC146818RTC_H
11#define __ASM_MACH_AU1XX_MC146818RTC_H
12
13#include <asm/io.h>
14#include <asm/mach-au1x00/au1000.h>
15
16#define RTC_PORT(x) (0x0c000000 + (x))
17#define RTC_IRQ 8
18#define PB1500_RTC_ADDR 0x0c000000
19
20static inline unsigned char CMOS_READ(unsigned long offset)
21{
22 offset <<= 2;
23 return (u8)(au_readl(offset + PB1500_RTC_ADDR) & 0xff);
24}
25
26static inline void CMOS_WRITE(unsigned char data, unsigned long offset)
27{
28 offset <<= 2;
29 au_writel(data, offset + PB1500_RTC_ADDR);
30}
31
32#define RTC_ALWAYS_BCD 1
33
34#endif /* __ASM_MACH_AU1XX_MC146818RTC_H */