diff -ur uc-origs/uClinux-2.4.27-uc1/arch/armnommu/mach-cx821xx/gpioisr.c uClinux-2.4.27-uc1/arch/armnommu/mach-cx821xx/gpioisr.c
--- uc-origs/uClinux-2.4.27-uc1/arch/armnommu/mach-cx821xx/gpioisr.c	2004-12-12 21:48:45.000000000 +0100
+++ uClinux-2.4.27-uc1/arch/armnommu/mach-cx821xx/gpioisr.c	2005-01-29 16:12:01.000000000 +0100
@@ -303,4 +303,17 @@
 	#endif
 }
 
+#ifdef CONFIG_BD_TIBURON
+void GPIOB27_Handler(int gpio_num)
+{
+	/* Clearing level */
+	unsigned long pre_value, cur_value;
+	int index = 0;
+	int in27 = 0;
+	SetGPIOIntEnable(GPIO27, 0);
+	WriteGPIOData(GPIO27, 1);
+	ClearGPIOIntStatus(GPIO27);
+}
+#endif
+
 EXPORT_SYMBOL(GPIO_SetGPIOIRQCallback);
diff -ur uc-origs/uClinux-2.4.27-uc1/include/asm-armnommu/arch-cx821xx/gpio.h uClinux-2.4.27-uc1/include/asm-armnommu/arch-cx821xx/gpio.h
--- uc-origs/uClinux-2.4.27-uc1/include/asm-armnommu/arch-cx821xx/gpio.h	2004-12-12 21:48:49.000000000 +0100
+++ uClinux-2.4.27-uc1/include/asm-armnommu/arch-cx821xx/gpio.h	2005-01-29 16:11:41.000000000 +0100
@@ -410,6 +410,9 @@
 extern void GPIOB24_Handler(int gpio_num);
 extern void GPIOB25_Handler(int gpio_num);
 extern void GPIOB30_Handler(int gpio_num);
+#ifdef CONFIG_BD_TIBURON
+extern void GPIOB27_Handler(int gpio_num);
+#endif
 
 #define MISC_BASE       ((UINT32)0x00350000)
 

