Merge branch 'linus' into cpus4096
[pandora-kernel.git] / arch / arm / mach-pxa / corgi_pm.c
index 165017d..e91c0f2 100644 (file)
@@ -16,7 +16,8 @@
 #include <linux/delay.h>
 #include <linux/interrupt.h>
 #include <linux/platform_device.h>
-#include <asm/apm-emulation.h>
+#include <linux/apm-emulation.h>
+
 #include <asm/irq.h>
 #include <asm/mach-types.h>
 #include <asm/hardware.h>
@@ -25,6 +26,8 @@
 #include <asm/arch/sharpsl.h>
 #include <asm/arch/corgi.h>
 #include <asm/arch/pxa-regs.h>
+#include <asm/arch/pxa2xx-regs.h>
+#include <asm/arch/pxa2xx-gpio.h>
 #include "sharpsl.h"
 
 #define SHARPSL_CHARGE_ON_VOLT         0x99  /* 2.9V */
@@ -202,7 +205,9 @@ static struct sharpsl_charger_machinfo corgi_pm_machinfo = {
        .read_devdata    = corgipm_read_devdata,
        .charger_wakeup  = corgi_charger_wakeup,
        .should_wakeup   = corgi_should_wakeup,
+#ifdef CONFIG_BACKLIGHT_CORGI
        .backlight_limit = corgibl_limit_intensity,
+#endif
        .charge_on_volt   = SHARPSL_CHARGE_ON_VOLT,
        .charge_on_temp   = SHARPSL_CHARGE_ON_TEMP,
        .charge_acin_high = SHARPSL_CHARGE_ON_ACIN_HIGH,
@@ -224,6 +229,10 @@ static int __devinit corgipm_init(void)
 {
        int ret;
 
+       if (!machine_is_corgi() && !machine_is_shepherd()
+                       && !machine_is_husky())
+               return -ENODEV;
+
        corgipm_device = platform_device_alloc("sharpsl-pm", -1);
        if (!corgipm_device)
                return -ENOMEM;