• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * arch/arm/include/asm/fiq_debugger.h
3  *
4  * Copyright (C) 2010 Google, Inc.
5  * Author: Colin Cross <ccross@android.com>
6  *
7  * This software is licensed under the terms of the GNU General Public
8  * License version 2, as published by the Free Software Foundation, and
9  * may be copied, distributed, and modified under those terms.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  */
17 
18 #ifndef _ARCH_ARM_MACH_TEGRA_FIQ_DEBUGGER_H_
19 #define _ARCH_ARM_MACH_TEGRA_FIQ_DEBUGGER_H_
20 
21 #include <linux/serial_core.h>
22 
23 #define FIQ_DEBUGGER_NO_CHAR NO_POLL_CHAR
24 #define FIQ_DEBUGGER_BREAK 0x00ff0100
25 
26 #define FIQ_DEBUGGER_FIQ_IRQ_NAME	"fiq"
27 #define FIQ_DEBUGGER_SIGNAL_IRQ_NAME	"signal"
28 #define FIQ_DEBUGGER_WAKEUP_IRQ_NAME	"wakeup"
29 
30 /**
31  * struct fiq_debugger_pdata - fiq debugger platform data
32  * @uart_resume:	used to restore uart state right before enabling
33  *			the fiq.
34  * @uart_enable:	Do the work necessary to communicate with the uart
35  *			hw (enable clocks, etc.). This must be ref-counted.
36  * @uart_disable:	Do the work necessary to disable the uart hw
37  *			(disable clocks, etc.). This must be ref-counted.
38  * @uart_dev_suspend:	called during PM suspend, generally not needed
39  *			for real fiq mode debugger.
40  * @uart_dev_resume:	called during PM resume, generally not needed
41  *			for real fiq mode debugger.
42  */
43 struct fiq_debugger_pdata {
44 	int (*uart_init)(struct platform_device *pdev);
45 	void (*uart_free)(struct platform_device *pdev);
46 	int (*uart_resume)(struct platform_device *pdev);
47 	int (*uart_getc)(struct platform_device *pdev);
48 	void (*uart_putc)(struct platform_device *pdev, unsigned int c);
49 	void (*uart_flush)(struct platform_device *pdev);
50 	void (*uart_enable)(struct platform_device *pdev);
51 	void (*uart_disable)(struct platform_device *pdev);
52 
53 	int (*uart_dev_suspend)(struct platform_device *pdev);
54 	int (*uart_dev_resume)(struct platform_device *pdev);
55 
56 	void (*fiq_enable)(struct platform_device *pdev, unsigned int fiq,
57 								bool enable);
58 	void (*fiq_ack)(struct platform_device *pdev, unsigned int fiq);
59 
60 	void (*force_irq)(struct platform_device *pdev, unsigned int irq);
61 	void (*force_irq_ack)(struct platform_device *pdev, unsigned int irq);
62 };
63 
64 #endif
65