aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-s3c2442/gta02-fiq.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-s3c2442/gta02-fiq.c')
-rw-r--r--arch/arm/mach-s3c2442/gta02-fiq.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c2442/gta02-fiq.c b/arch/arm/mach-s3c2442/gta02-fiq.c
index 436e7448e23..d2c825c17ad 100644
--- a/arch/arm/mach-s3c2442/gta02-fiq.c
+++ b/arch/arm/mach-s3c2442/gta02-fiq.c
@@ -5,6 +5,7 @@
#include <mach/regs-irq.h>
#include <mach/irqs.h>
#include <linux/io.h>
+#include <linux/hdq.h>
/* -------------------------------------------------------------------------------
* GTA02 FIQ related
@@ -15,6 +16,11 @@
#define DIVISOR_FROM_US(x) ((x) << 3)
+#ifdef CONFIG_HDQ_GPIO_BITBANG
+#define FIQ_DIVISOR_HDQ DIVISOR_FROM_US(HDQ_SAMPLE_PERIOD_US)
+extern int hdq_fiq_handler(void);
+#endif
+
/* Global data related to our fiq source */
static uint32_t gta02_fiq_ack_mask;
static struct s3c2410_pwm gta02_fiq_pwm_timer;
@@ -33,6 +39,11 @@ void gta02_fiq_handler(void)
* thankfully and taken care of by the fiq-basis patch
*/
+#ifdef CONFIG_HDQ_GPIO_BITBANG
+ if (hdq_fiq_handler())
+ divisor = FIQ_DIVISOR_HDQ;
+#endif
+
if (divisor == 0xffff) /* mask the fiq irq source */
__raw_writel(__raw_readl(S3C2410_INTMSK) | gta02_fiq_ack_mask,
S3C2410_INTMSK);