diff options
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.26/1093-add-gta02-pcb-revision-detect.patch.patch')
-rwxr-xr-x | target/linux/s3c24xx/patches-2.6.26/1093-add-gta02-pcb-revision-detect.patch.patch | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.26/1093-add-gta02-pcb-revision-detect.patch.patch b/target/linux/s3c24xx/patches-2.6.26/1093-add-gta02-pcb-revision-detect.patch.patch deleted file mode 100755 index 8de4e52..0000000 --- a/target/linux/s3c24xx/patches-2.6.26/1093-add-gta02-pcb-revision-detect.patch.patch +++ /dev/null @@ -1,118 +0,0 @@ -From fffb5d650929cf49a3e3f200bea1d5472de56794 Mon Sep 17 00:00:00 2001 -From: Andy Green <andy@openmoko.com> -Date: Fri, 25 Jul 2008 23:06:02 +0100 -Subject: [PATCH] add-gta02-pcb-revision-detect.patch - -Add function - -int gta02_get_pcb_revision(void) - -which returns state of GTA02 PCB revision pins. It is also called -and logged during boot with KERN_INFO. The results look like: - -b9 b8 b2 b1 b0 - GPD4 GPD3 GPD0 GPC15 GPC13 - - GTA02 A5 and before: 0x000 - GTA02 A6 : 0x001 - -Signed-off-by: Andy Green <andy@openmoko.com> ---- - arch/arm/mach-s3c2440/mach-gta02.c | 55 +++++++++++++++++++++++++++++++++- - include/asm-arm/arch-s3c2410/gta02.h | 9 +++++ - 2 files changed, 63 insertions(+), 1 deletions(-) - -diff --git a/arch/arm/mach-s3c2440/mach-gta02.c b/arch/arm/mach-s3c2440/mach-gta02.c -index 99206ee..a2a63fe 100644 ---- a/arch/arm/mach-s3c2440/mach-gta02.c -+++ b/arch/arm/mach-s3c2440/mach-gta02.c -@@ -320,6 +320,59 @@ FIQ_HANDLER_ENTRY(256, 512) - FIQ_HANDLER_END() - - -+/** -+ * returns PCB revision information in b9,b8 and b2,b1,b0 -+ * Pre-GTA02 A6 returns 0x000 -+ * GTA02 A6 returns 0x101 -+ * ... -+ */ -+ -+int gta02_get_pcb_revision(void) -+{ -+ int n; -+ int u = 0; -+ static unsigned long pinlist[] = { -+ GTA02_PCB_ID1_0, -+ GTA02_PCB_ID1_1, -+ GTA02_PCB_ID1_2, -+ GTA02_PCB_ID2_0, -+ GTA02_PCB_ID2_1, -+ }; -+ static int pin_offset[] = { -+ 0, 1, 2, 8, 9 -+ }; -+ -+ for (n = 0 ; n < ARRAY_SIZE(pinlist); n++) { -+ /* -+ * set the PCB version GPIO to be pulled-down input -+ * force low briefly first -+ */ -+ s3c2410_gpio_cfgpin(pinlist[n], S3C2410_GPIO_OUTPUT); -+ s3c2410_gpio_setpin(pinlist[n], 0); -+ /* misnomer: it is a pullDOWN in 2442 */ -+ s3c2410_gpio_pullup(pinlist[n], 1); -+ s3c2410_gpio_cfgpin(pinlist[n], S3C2410_GPIO_INPUT); -+ -+ udelay(10); -+ -+ if (s3c2410_gpio_getpin(pinlist[n])) -+ u |= 1 << pin_offset[n]; -+ -+ /* -+ * when not being interrogated, all of the revision GPIO -+ * are set to output HIGH without pulldown so no current flows -+ * if they are NC or pulled up. -+ */ -+ s3c2410_gpio_setpin(pinlist[n], 1); -+ s3c2410_gpio_cfgpin(pinlist[n], S3C2410_GPIO_OUTPUT); -+ /* misnomer: it is a pullDOWN in 2442 */ -+ s3c2410_gpio_pullup(pinlist[n], 0); -+ } -+ -+ return u; -+} -+ -+ - static struct map_desc gta02_iodesc[] __initdata = { - { - .virtual = 0xe0000000, -@@ -911,7 +964,7 @@ void gat02_lis302dl_suspend_io(struct lis302dl_info *lis, int resume) - s3c2410_gpio_pullup(pdata->pin_miso, 0); - } - --const struct lis302dl_platform_data lis302_pdata[] = { -+struct lis302dl_platform_data lis302_pdata[] = { - { - .name = "lis302-1 (top)", - .pin_chip_select= S3C2410_GPD12, -diff --git a/include/asm-arm/arch-s3c2410/gta02.h b/include/asm-arm/arch-s3c2410/gta02.h -index f686a7a..791ea4f 100644 ---- a/include/asm-arm/arch-s3c2410/gta02.h -+++ b/include/asm-arm/arch-s3c2410/gta02.h -@@ -97,4 +97,13 @@ - #define GTA02v3_IRQ_nUSB_FLT IRQ_EINT18 /* v3 + v4 only */ - #define GTA02v3_IRQ_nGSM_OC IRQ_EINT19 /* v3 + v4 only */ - -+/* returns 00 000 on GTA02 A5 and earlier, A6 returns 01 001 */ -+#define GTA02_PCB_ID1_0 S3C2410_GPC13 -+#define GTA02_PCB_ID1_1 S3C2410_GPC15 -+#define GTA02_PCB_ID1_2 S3C2410_GPD0 -+#define GTA02_PCB_ID2_0 S3C2410_GPD3 -+#define GTA02_PCB_ID2_1 S3C2410_GPD4 -+ -+int gta02_get_pcb_revision(void); -+ - #endif /* _GTA02_H */ --- -1.5.6.3 - |