summaryrefslogtreecommitdiff
path: root/arch/powerpc/sysdev/rtc_cmos_setup.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-08-20 22:43:18 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-08-20 22:43:18 -0700
commit2046219364a40bcb13482ff68eb6ccec13405633 (patch)
tree5f4f951da5a0326318cd1abcd535ea40dc90c3b7 /arch/powerpc/sysdev/rtc_cmos_setup.c
parent0c5564bd91ad237212871d52deaf79ffe06bcc64 (diff)
parent0af666fa6cf4bc639fb6170600b5fb0d8b6504b9 (diff)
Merge branch 'fixes-2.6.23' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc
* 'fixes-2.6.23' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc: [POWERPC] Fix 8xx compile failure [POWERPC] Fix FSL BookE machine check reporting [POWERPC] Fix interrupt routing and setup of ULI M1575 on FSL boards [POWERPC] Add interrupt resource for RTC CMOS driver
Diffstat (limited to 'arch/powerpc/sysdev/rtc_cmos_setup.c')
-rw-r--r--arch/powerpc/sysdev/rtc_cmos_setup.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/arch/powerpc/sysdev/rtc_cmos_setup.c b/arch/powerpc/sysdev/rtc_cmos_setup.c
index e276048b8c5f..0c9ac7ee08fb 100644
--- a/arch/powerpc/sysdev/rtc_cmos_setup.c
+++ b/arch/powerpc/sysdev/rtc_cmos_setup.c
@@ -20,14 +20,16 @@ static int __init add_rtc(void)
{
struct device_node *np;
struct platform_device *pd;
- struct resource res;
+ struct resource res[2];
int ret;
+ memset(&res, 0, sizeof(res));
+
np = of_find_compatible_node(NULL, NULL, "pnpPNP,b00");
if (!np)
return -ENODEV;
- ret = of_address_to_resource(np, 0, &res);
+ ret = of_address_to_resource(np, 0, &res[0]);
of_node_put(np);
if (ret)
return ret;
@@ -36,11 +38,18 @@ static int __init add_rtc(void)
* 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))
+ if (res[0].start != RTC_PORT(0))
return -EINVAL;
+ /* Use a fixed interrupt value of 8 since on PPC if we are using this
+ * its off an i8259 which we ensure has interrupt numbers 0..15. */
+ res[1].start = 8;
+ res[1].end = 8;
+ res[1].flags = IORESOURCE_IRQ;
+
pd = platform_device_register_simple("rtc_cmos", -1,
- &res, 1);
+ &res[0], 2);
+
if (IS_ERR(pd))
return PTR_ERR(pd);