[PATCH 7/7] P2020ds: add event button handler
Li Yang
leoli at freescale.com
Fri Dec 3 23:34:11 EST 2010
This can be used as a wakeup source for power management.
Signed-off-by: Li Yang <leoli at freescale.com>
---
arch/powerpc/boot/dts/p2020ds.dts | 9 ++++++++-
arch/powerpc/platforms/85xx/mpc85xx_ds.c | 26 +++++++++++++++++++++++++-
2 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/boot/dts/p2020ds.dts b/arch/powerpc/boot/dts/p2020ds.dts
index 1101914..f4c6520 100644
--- a/arch/powerpc/boot/dts/p2020ds.dts
+++ b/arch/powerpc/boot/dts/p2020ds.dts
@@ -1,7 +1,7 @@
/*
* P2020 DS Device Tree Source
*
- * Copyright 2009 Freescale Semiconductor Inc.
+ * Copyright 2009-2010 Freescale Semiconductor Inc.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -155,6 +155,13 @@
compatible = "fsl,elbc-fcm-nand";
reg = <0x6 0x0 0x40000>;
};
+
+ ngpixis at 3,0 {
+ compatible = "fsl,p2020ds-fpga";
+ reg = <0x3 0 0x30>;
+ interrupt-parent = <&mpic>;
+ interrupts = <0 0>;
+ };
};
soc at ffe00000 {
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ds.c b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
index 8190bc2..a8807fe 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_ds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
@@ -4,7 +4,7 @@
* Author Xianghua Xiao (x.xiao at freescale.com)
* Roy Zang <tie-fei.zang at freescale.com>
* - Add PCI/PCI Exprees support
- * Copyright 2007 Freescale Semiconductor Inc.
+ * Copyright 2007-2010 Freescale Semiconductor Inc.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -200,6 +200,30 @@ static void __init mpc85xx_ds_setup_arch(void)
printk("MPC85xx DS board from Freescale Semiconductor\n");
}
+static irqreturn_t event_isr(int irq, void *dev_id)
+{
+
+ printk(KERN_INFO "MPC85xxDS: Event button been pushed.\n");
+ return IRQ_HANDLED;
+}
+
+static int __init p2020ds_ngpixis_init(void)
+{
+ int event_irq, ret;
+ struct device_node *np;
+
+ np = of_find_compatible_node(NULL, NULL, "fsl,p2020ds-fpga");
+ if (np) {
+ event_irq = irq_of_parse_and_map(np, 0);
+ ret = request_irq(event_irq, event_isr, 0, "event", NULL);
+ if (ret)
+ printk(KERN_ERR "Can't request board event int\n");
+ of_node_put(np);
+ }
+ return 0;
+}
+machine_device_initcall(p2020_ds, p2020ds_ngpixis_init);
+
/*
* Called very early, device-tree isn't unflattened
*/
--
1.6.6-rc1.GIT
More information about the Linuxppc-dev
mailing list