1 #include <linux/device.h>
2 #include <linux/platform_device.h>
5 #include <linux/tty_flip.h>
7 #include <asm/fiq_glue.h>
8 #include <asm/fiq_debugger.h>
10 #include <mach/mt_reg_base.h>
11 #include <linux/uart/mtk_uart.h>
12 #include <linux/uart/mtk_uart_intf.h>
14 #define MT_UART_FIQ_ID MT_UART4_IRQ_ID
16 static void fiq_enable(struct platform_device
*pdev
, unsigned int fiq
, bool enable
)
24 static void fiq_dbg_force_irq(struct platform_device
*pdev
, unsigned int irq
)
29 struct fiq_debugger_pdata fiq_serial_data
= {
30 .uart_getc
= &fiq_uart_getc
,
31 .uart_putc
= &fiq_uart_putc
,
32 .fiq_enable
= &fiq_enable
,
34 .force_irq
= &fiq_dbg_force_irq
,
38 struct resource fiq_resource
[] = {
42 .flags
= IORESOURCE_IRQ
,
46 .start
= MT_UART_FIQ_ID
,
47 .end
= MT_UART_FIQ_ID
,
48 .flags
= IORESOURCE_IRQ
,
53 struct platform_device mt_fiq_debugger
= {
54 .name
= "fiq_debugger",
57 .platform_data
= &fiq_serial_data
,
59 .num_resources
= ARRAY_SIZE(fiq_resource
),
60 .resource
= fiq_resource
,
63 void mt_fiq_printf(const char *fmt
, ...)
71 vsnprintf(buf
, sizeof(buf
), fmt
, ap
);
78 fiq_uart_putc(NULL
, '\r');
81 fiq_uart_putc(NULL
, c
);