diff options
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.24/1089-debug-suspend-dump-gpio-states-add-GPA.patch.patch')
-rw-r--r-- | target/linux/s3c24xx/patches-2.6.24/1089-debug-suspend-dump-gpio-states-add-GPA.patch.patch | 451 |
1 files changed, 0 insertions, 451 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.24/1089-debug-suspend-dump-gpio-states-add-GPA.patch.patch b/target/linux/s3c24xx/patches-2.6.24/1089-debug-suspend-dump-gpio-states-add-GPA.patch.patch deleted file mode 100644 index 276fa25dd8..0000000000 --- a/target/linux/s3c24xx/patches-2.6.24/1089-debug-suspend-dump-gpio-states-add-GPA.patch.patch +++ /dev/null @@ -1,451 +0,0 @@ -From 475826b7d7ef66e80b64d97ea9e8aca56d97e313 Mon Sep 17 00:00:00 2001 -From: Andy Green <andy@openmoko.com> -Date: Sun, 13 Apr 2008 07:25:49 +0100 -Subject: [PATCH] debug-suspend-dump-gpio-states-add-GPA.patch - -Add support for GPA[] GPIO bus since we have some NCs -but they seem to output-only IO cells so no matter - -Signed-off-by: Andy Green <andy@openmoko.com> ---- - arch/arm/plat-s3c24xx/gpio.c | 420 ++++++++++++++++++++++++++++++++++++++++++ - 1 files changed, 420 insertions(+), 0 deletions(-) - -diff --git a/arch/arm/plat-s3c24xx/gpio.c b/arch/arm/plat-s3c24xx/gpio.c -index ec3a09c..7cab212 100644 ---- a/arch/arm/plat-s3c24xx/gpio.c -+++ b/arch/arm/plat-s3c24xx/gpio.c -@@ -32,6 +32,7 @@ - #include <asm/io.h> - - #include <asm/arch/regs-gpio.h> -+#include <asm/arch/regs-gpioj.h> - - void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function) - { -@@ -186,3 +187,422 @@ int s3c2410_gpio_getirq(unsigned int pin) - } - - EXPORT_SYMBOL(s3c2410_gpio_getirq); -+ -+static void pretty_dump(u32 cfg, u32 state, u32 pull, -+ const char ** function_names_2, -+ const char ** function_names_3, -+ const char * prefix, -+ int count) -+{ -+ int n; -+ const char *tag_type = NULL, -+ *tag_state = NULL, -+ *tag_pulldown = NULL, -+ * level0 = "0", -+ * level1 = "1"; -+ -+ for (n = 0; n < count; n++) { -+ switch ((cfg >> (2 * n)) & 3) { -+ case 0: -+ tag_type = "input "; -+ break; -+ case 1: -+ tag_type = "OUTPUT "; -+ break; -+ case 2: -+ if (function_names_2) { -+ if (function_names_2[n]) -+ tag_type = function_names_2[n]; -+ else -+ tag_type = "*** ILLEGAL CFG (2) *** "; -+ } else -+ tag_type = "(function) "; -+ break; -+ default: -+ if (function_names_3) { -+ if (function_names_3[n]) -+ tag_type = function_names_3[n]; -+ else -+ tag_type = "*** ILLEGAL CFG (3) *** "; -+ } else -+ tag_type = "(function) "; -+ break; -+ } -+ if ((state >> n) & 1) -+ tag_state = level1; -+ else -+ tag_state = level0; -+ -+ if (((pull >> n) & 1)) -+ tag_pulldown = ""; -+ else -+ tag_pulldown = "(pulldown)"; -+ -+ printk(KERN_INFO"%s%02d: %s %s %s\n", prefix, n, tag_type, -+ tag_state, tag_pulldown); -+ } -+ printk(KERN_INFO"\n"); -+} -+ -+static void pretty_dump_a(u32 cfg, u32 state, -+ const char ** function_names, -+ const char * prefix, -+ int count) -+{ -+ int n; -+ const char *tag_type = NULL, -+ *tag_state = NULL, -+ * level0 = "0", -+ * level1 = "1"; -+ -+ for (n = 0; n < count; n++) { -+ switch ((cfg >> n) & 1) { -+ case 0: -+ tag_type = "OUTPUT "; -+ break; -+ default: -+ if (function_names) { -+ if (function_names[n]) -+ tag_type = function_names[n]; -+ else -+ tag_type = "*** ILLEGAL CFG *** "; -+ } else -+ tag_type = "(function) "; -+ break; -+ } -+ if ((state >> n) & 1) -+ tag_state = level1; -+ else -+ tag_state = level0; -+ -+ printk(KERN_INFO"%s%02d: %s %s\n", prefix, n, tag_type, -+ tag_state); -+ } -+ printk(KERN_INFO"\n"); -+} -+ -+static const char * funcs_a[] = { -+ "ADDR0 ", -+ "ADDR16 ", -+ "ADDR17 ", -+ "ADDR18 ", -+ "ADDR19 ", -+ "ADDR20 ", -+ "ADDR21 ", -+ "ADDR22 ", -+ "ADDR23 ", -+ "ADDR24 ", -+ "ADDR25 ", -+ "ADDR26 ", -+ "nGCS[1] ", -+ "nGCS[2] ", -+ "nGCS[3] ", -+ "nGCS[4] ", -+ "nGCS[5] ", -+ "CLE ", -+ "ALE ", -+ "nFWE ", -+ "nFRE ", -+ "nRSTOUT ", -+ "nFCE ", -+ NULL, -+ NULL -+}; -+ -+ -+static const char * funcs_b2[] = { -+ "TOUT0 ", -+ "TOUT1 ", -+ "TOUT2 ", -+ "TOUT3 ", -+ "TCLK[0] ", -+ "nXBACK ", -+ "nXBREQ ", -+ "nXDACK1 ", -+ "nXDREQ1 ", -+ "nXDACK0 ", -+ "nXDREQ0 ", -+}; -+static const char * funcs_b3[] = { -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+}; -+ -+static const char * funcs_c2[] = { -+ "LEND ", -+ "VCLK ", -+ "VLINE ", -+ "VFRAME ", -+ "VM ", -+ "LCD_LPCOE ", -+ "LCD_LPCREV ", -+ "LCD_LPCREVB", -+ "VD[0] ", -+ "VD[1] ", -+ "VD[2] ", -+ "VD[3] ", -+ "VD[4] ", -+ "VD[5] ", -+ "VD[6] ", -+ "VD[7] ", -+}; -+static const char * funcs_c3[] = { -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ "I2SSDI ", -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+}; -+ -+static const char * funcs_d2[] = { -+ "VD[8] ", -+ "VD[9] ", -+ "VD[10] ", -+ "VD[11] ", -+ "VD[12] ", -+ "VD[13] ", -+ "VD[14] ", -+ "VD[15] ", -+ "VD[16] ", -+ "VD[17] ", -+ "VD[18] ", -+ "VD[19] ", -+ "VD[20] ", -+ "VD[21] ", -+ "VD[22] ", -+ "VD[23] ", -+}; -+static const char * funcs_d3[] = { -+ "nSPICS1 ", -+ "SPICLK1 ", -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ "SPIMISO1 ", -+ "SPIMOSI1 ", -+ "SPICLK1 ", -+ NULL, -+ NULL, -+ NULL, -+ "nSS1 ", -+ "nSS0 ", -+}; -+ -+static const char * funcs_e2[] = { -+ "I2SLRCK ", -+ "I2SSCLK ", -+ "CDCLK ", -+ "I2SDI ", -+ "I2SDO ", -+ "SDCLK ", -+ "SDCMD ", -+ "SDDAT0 ", -+ "SDDAT1 ", -+ "SDDAT2 ", -+ "SDDAT3 ", -+ "SPIMISO0 ", -+ "SPIMOSI0 ", -+ "SPICLK0 ", -+ "IICSCL ", -+ "IICSDA ", -+}; -+static const char * funcs_e3[] = { -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+}; -+ -+static const char * funcs_f2[] = { -+ "EINT[0] ", -+ "EINT[1] ", -+ "EINT[2] ", -+ "EINT[3] ", -+ "EINT[4] ", -+ "EINT[5] ", -+ "EINT[6] ", -+ "EINT[7] ", -+}; -+static const char * funcs_f3[] = { -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+}; -+ -+ -+static const char * funcs_g2[] = { -+ "EINT[8] ", -+ "EINT[9] ", -+ "EINT[10] ", -+ "EINT[11] ", -+ "EINT[12] ", -+ "EINT[13] ", -+ "EINT[14] ", -+ "EINT[15] ", -+ "EINT[16] ", -+ "EINT[17] ", -+ "EINT[18] ", -+ "EINT[19] ", -+ "EINT[20] ", -+ "EINT[21] ", -+ "EINT[22] ", -+ "EINT[23] ", -+}; -+static const char * funcs_g3[] = { -+ NULL, -+ NULL, -+ "nSS0 ", -+ "nSS1 ", -+ "LCD_PWRDN ", -+ "SPIMISO1 ", -+ "SPIMOSI1 ", -+ "SPICLK1 ", -+ NULL, -+ "nRTS1 ", -+ "nCTS1 ", -+ "TCLK[1] ", -+ "nSPICS0 ", -+ NULL, -+ NULL, -+ NULL, -+}; -+ -+static const char * funcs_h2[] = { -+ "nCTS0 ", -+ "nRTS0 ", -+ "TXD[0] ", -+ "RXD[0] ", -+ "TXD[1] ", -+ "RXD[1] ", -+ "TXD[2] ", -+ "RXD[2] ", -+ "UEXTCLK ", -+ "CLKOUT0 ", -+ "CLKOUT1 ", -+}; -+static const char * funcs_h3[] = { -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ "nRTS1 ", -+ "nCTS1 ", -+ NULL, -+ "nSPICS0 ", -+ NULL, -+}; -+ -+static const char * funcs_j2[] = { -+ "CAMDATA[0] ", -+ "CAMDATA[1] ", -+ "CAMDATA[2] ", -+ "CAMDATA[3] ", -+ "CAMDATA[4] ", -+ "CAMDATA[5] ", -+ "CAMDATA[6] ", -+ "CAMDATA[7] ", -+ "CAMPCLK ", -+ "CAMVSYNC ", -+ "CAMHREF ", -+ "CAMCLKOUT ", -+ "CAMRESET ", -+}; -+static const char * funcs_j3[] = { -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+ NULL, -+}; -+ -+/* used to dump GPIO states at suspend */ -+void s3c24xx_dump_gpio_states(void) -+{ -+ pretty_dump_a(__raw_readl(S3C2410_GPACON), -+ __raw_readl(S3C2410_GPADAT), -+ funcs_a, "GPA", 25); -+ pretty_dump(__raw_readl(S3C2410_GPBCON), -+ __raw_readl(S3C2410_GPBDAT), -+ __raw_readl(S3C2410_GPBUP), -+ funcs_b2, funcs_b3, "GPB", 11); -+ pretty_dump(__raw_readl(S3C2410_GPCCON), -+ __raw_readl(S3C2410_GPCDAT), -+ __raw_readl(S3C2410_GPCUP), -+ funcs_c2, funcs_c3, "GPC", 16); -+ pretty_dump(__raw_readl(S3C2410_GPDCON), -+ __raw_readl(S3C2410_GPDDAT), -+ __raw_readl(S3C2410_GPDUP), -+ funcs_d2, funcs_d3, "GPD", 16); -+ pretty_dump(__raw_readl(S3C2410_GPECON), -+ __raw_readl(S3C2410_GPEDAT), -+ __raw_readl(S3C2410_GPEUP), -+ funcs_e2, funcs_e3, "GPE", 16); -+ pretty_dump(__raw_readl(S3C2410_GPFCON), -+ __raw_readl(S3C2410_GPFDAT), -+ __raw_readl(S3C2410_GPFUP), -+ funcs_f2, funcs_f3, "GPF", 8); -+ pretty_dump(__raw_readl(S3C2410_GPGCON), -+ __raw_readl(S3C2410_GPGDAT), -+ __raw_readl(S3C2410_GPGUP), -+ funcs_g2, funcs_g3, "GPG", 16); -+ pretty_dump(__raw_readl(S3C2410_GPHCON), -+ __raw_readl(S3C2410_GPHDAT), -+ __raw_readl(S3C2410_GPHUP), -+ funcs_h2, funcs_h3, "GPH", 11); -+ pretty_dump(__raw_readl(S3C2440_GPJCON), -+ __raw_readl(S3C2440_GPJDAT), -+ __raw_readl(S3C2440_GPJUP), -+ funcs_j2, funcs_j3, "GPJ", 13); -+ -+} -+EXPORT_SYMBOL(s3c24xx_dump_gpio_states); --- -1.5.6.5 - |