Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=93ab471889c6662b42ce7da257f31f24c08d7d9e
Commit:     93ab471889c6662b42ce7da257f31f24c08d7d9e
Parent:     3c0c9e389bb9618fee2300eea2d135e4db64c4ba
Author:     Wade Farnsworth <[EMAIL PROTECTED]>
AuthorDate: Wed Jul 11 02:55:46 2007 +1000
Committer:  Paul Mackerras <[EMAIL PROTECTED]>
CommitDate: Wed Jul 11 13:24:40 2007 +1000

    [POWERPC] Create add_rtc() function to enable the RTC CMOS driver
    
    In order to use the RTC CMOS driver, each architecture must register a
    platform device for the RTC.
    
    This creates a function to register the platform device based on the RTC
    device node and verifies that the RTC port against the hard-coded value
    in asm/mc146818rtc.h.
    
    Signed-off-by: Wade Farnsworth <[EMAIL PROTECTED]>
    Signed-off-by: Paul Mackerras <[EMAIL PROTECTED]>
---
 arch/powerpc/sysdev/Makefile         |    1 +
 arch/powerpc/sysdev/rtc_cmos_setup.c |   49 ++++++++++++++++++++++++++++++++++
 2 files changed, 50 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile
index 7d8ac1b..f65078c 100644
--- a/arch/powerpc/sysdev/Makefile
+++ b/arch/powerpc/sysdev/Makefile
@@ -16,6 +16,7 @@ obj-$(CONFIG_TSI108_BRIDGE)   += tsi108_pci.o tsi108_dev.o
 obj-$(CONFIG_QUICC_ENGINE)     += qe_lib/
 mv64x60-$(CONFIG_PCI)          += mv64x60_pci.o
 obj-$(CONFIG_MV64X60)          += $(mv64x60-y) mv64x60_pic.o mv64x60_dev.o
+obj-$(CONFIG_RTC_DRV_CMOS)     += rtc_cmos_setup.o
 
 # contains only the suspend handler for time
 ifeq ($(CONFIG_RTC_CLASS),)
diff --git a/arch/powerpc/sysdev/rtc_cmos_setup.c 
b/arch/powerpc/sysdev/rtc_cmos_setup.c
new file mode 100644
index 0000000..e276048
--- /dev/null
+++ b/arch/powerpc/sysdev/rtc_cmos_setup.c
@@ -0,0 +1,49 @@
+/*
+ * Setup code for PC-style Real-Time Clock.
+ *
+ * Author: Wade Farnsworth <[EMAIL PROTECTED]>
+ *
+ * 2007 (c) MontaVista Software, Inc. This file is licensed under
+ * the terms of the GNU General Public License version 2. This program
+ * is licensed "as is" without any warranty of any kind, whether express
+ * or implied.
+ */
+
+#include <linux/platform_device.h>
+#include <linux/err.h>
+#include <linux/init.h>
+#include <linux/mc146818rtc.h>
+
+#include <asm/prom.h>
+
+static int  __init add_rtc(void)
+{
+       struct device_node *np;
+       struct platform_device *pd;
+       struct resource res;
+       int ret;
+
+       np = of_find_compatible_node(NULL, NULL, "pnpPNP,b00");
+       if (!np)
+               return -ENODEV;
+
+       ret = of_address_to_resource(np, 0, &res);
+       of_node_put(np);
+       if (ret)
+               return ret;
+
+       /*
+        * RTC_PORT(x) is hardcoded in asm/mc146818rtc.h.  Verify that the
+        * address provided by the device node matches.
+        */
+       if (res.start != RTC_PORT(0))
+               return -EINVAL;
+
+       pd = platform_device_register_simple("rtc_cmos", -1,
+                                            &res, 1);
+       if (IS_ERR(pd))
+               return PTR_ERR(pd);
+
+       return 0;
+}
+fs_initcall(add_rtc);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to