فهرست منبع

[ARM] pxa: make lubbock specific debugging stuffs back into lubbock.c

This isn't perfect but at least solves the problem of pm.c's dependency
on register definitions in <mach/lubbock.h>, which doesn't make much
sense.

Signed-off-by: Eric Miao <eric.miao@marvell.com>
Eric Miao 16 سال پیش
والد
کامیت
5438614509
4فایلهای تغییر یافته به همراه20 افزوده شده و 11 حذف شده
  1. 0 1
      arch/arm/mach-pxa/include/mach/lubbock.h
  2. 10 0
      arch/arm/mach-pxa/include/mach/pm.h
  3. 7 0
      arch/arm/mach-pxa/lubbock.c
  4. 3 10
      arch/arm/mach-pxa/pm.c

+ 0 - 1
arch/arm/mach-pxa/include/mach/lubbock.h

@@ -25,7 +25,6 @@
 
 
 /* FPGA register virtual addresses */
 /* FPGA register virtual addresses */
 #define LUB_WHOAMI		__LUB_REG(LUBBOCK_FPGA_PHYS + 0x000)
 #define LUB_WHOAMI		__LUB_REG(LUBBOCK_FPGA_PHYS + 0x000)
-#define LUB_HEXLED		__LUB_REG(LUBBOCK_FPGA_PHYS + 0x010)
 #define LUB_DISC_BLNK_LED	__LUB_REG(LUBBOCK_FPGA_PHYS + 0x040)
 #define LUB_DISC_BLNK_LED	__LUB_REG(LUBBOCK_FPGA_PHYS + 0x040)
 #define LUB_CONF_SWITCHES	__LUB_REG(LUBBOCK_FPGA_PHYS + 0x050)
 #define LUB_CONF_SWITCHES	__LUB_REG(LUBBOCK_FPGA_PHYS + 0x050)
 #define LUB_USER_SWITCHES	__LUB_REG(LUBBOCK_FPGA_PHYS + 0x060)
 #define LUB_USER_SWITCHES	__LUB_REG(LUBBOCK_FPGA_PHYS + 0x060)

+ 10 - 0
arch/arm/mach-pxa/include/mach/pm.h

@@ -27,3 +27,13 @@ extern void pxa27x_cpu_suspend(unsigned int);
 extern void pxa_cpu_resume(void);
 extern void pxa_cpu_resume(void);
 
 
 extern int pxa_pm_enter(suspend_state_t state);
 extern int pxa_pm_enter(suspend_state_t state);
+
+/* NOTE: this is for PM debugging on Lubbock,  it's really a big
+ * ugly, but let's keep the crap minimum here, instead of direct
+ * accessing the LUBBOCK CPLD registers in arch/arm/mach-pxa/pm.c
+ */
+#ifdef CONFIG_ARCH_LUBBOCK
+extern void lubbock_set_hexled(uint32_t value);
+#else
+#define lubbock_set_hexled(x)
+#endif

+ 7 - 0
arch/arm/mach-pxa/lubbock.c

@@ -49,6 +49,7 @@
 #include <mach/irda.h>
 #include <mach/irda.h>
 #include <mach/pxafb.h>
 #include <mach/pxafb.h>
 #include <mach/mmc.h>
 #include <mach/mmc.h>
+#include <mach/pm.h>
 
 
 #include "generic.h"
 #include "generic.h"
 #include "clock.h"
 #include "clock.h"
@@ -112,8 +113,14 @@ static unsigned long lubbock_pin_config[] __initdata = {
 	GPIO1_GPIO | WAKEUP_ON_EDGE_RISE,
 	GPIO1_GPIO | WAKEUP_ON_EDGE_RISE,
 };
 };
 
 
+#define LUB_HEXLED		__LUB_REG(LUBBOCK_FPGA_PHYS + 0x010)
 #define LUB_MISC_WR		__LUB_REG(LUBBOCK_FPGA_PHYS + 0x080)
 #define LUB_MISC_WR		__LUB_REG(LUBBOCK_FPGA_PHYS + 0x080)
 
 
+void lubbock_set_hexled(uint32_t value)
+{
+	LUB_HEXLED = value;
+}
+
 void lubbock_set_misc_wr(unsigned int mask, unsigned int set)
 void lubbock_set_misc_wr(unsigned int mask, unsigned int set)
 {
 {
 	unsigned long flags;
 	unsigned long flags;

+ 3 - 10
arch/arm/mach-pxa/pm.c

@@ -14,15 +14,8 @@
 #include <linux/module.h>
 #include <linux/module.h>
 #include <linux/suspend.h>
 #include <linux/suspend.h>
 #include <linux/errno.h>
 #include <linux/errno.h>
-#include <linux/time.h>
 
 
-#include <mach/hardware.h>
-#include <asm/memory.h>
-#include <asm/system.h>
 #include <mach/pm.h>
 #include <mach/pm.h>
-#include <mach/pxa-regs.h>
-#include <mach/lubbock.h>
-#include <asm/mach/time.h>
 
 
 struct pxa_cpu_pm_fns *pxa_cpu_pm_fns;
 struct pxa_cpu_pm_fns *pxa_cpu_pm_fns;
 static unsigned long *sleep_save;
 static unsigned long *sleep_save;
@@ -57,9 +50,9 @@ int pxa_pm_enter(suspend_state_t state)
 
 
 		/* if invalid, display message and wait for a hardware reset */
 		/* if invalid, display message and wait for a hardware reset */
 		if (checksum != sleep_save_checksum) {
 		if (checksum != sleep_save_checksum) {
-#ifdef CONFIG_ARCH_LUBBOCK
-			LUB_HEXLED = 0xbadbadc5;
-#endif
+
+			lubbock_set_hexled(0xbadbadc5);
+
 			while (1)
 			while (1)
 				pxa_cpu_pm_fns->enter(state);
 				pxa_cpu_pm_fns->enter(state);
 		}
 		}