82 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * drivers/staging/android/fiq_debugger/fiq_debugger.h
 | |
|  *
 | |
|  * Copyright (C) 2010 Google, Inc.
 | |
|  * Author: Colin Cross <ccross@android.com>
 | |
|  *
 | |
|  * This software is licensed under the terms of the GNU General Public
 | |
|  * License version 2, as published by the Free Software Foundation, and
 | |
|  * may be copied, distributed, and modified under those terms.
 | |
|  *
 | |
|  * This program is distributed in the hope that it will be useful,
 | |
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|  * GNU General Public License for more details.
 | |
|  *
 | |
|  */
 | |
| 
 | |
| #ifndef _ARCH_ARM_MACH_TEGRA_FIQ_DEBUGGER_H_
 | |
| #define _ARCH_ARM_MACH_TEGRA_FIQ_DEBUGGER_H_
 | |
| 
 | |
| #include <linux/serial_core.h>
 | |
| 
 | |
| #define FIQ_DEBUGGER_NO_CHAR NO_POLL_CHAR
 | |
| #define FIQ_DEBUGGER_BREAK 0x00ff0100
 | |
| 
 | |
| #define FIQ_DEBUGGER_FIQ_IRQ_NAME	"fiq"
 | |
| #define FIQ_DEBUGGER_SIGNAL_IRQ_NAME	"signal"
 | |
| #define FIQ_DEBUGGER_WAKEUP_IRQ_NAME	"wakeup"
 | |
| 
 | |
| /**
 | |
|  * struct fiq_debugger_pdata - fiq debugger platform data
 | |
|  * @uart_resume:	used to restore uart state right before enabling
 | |
|  *			the fiq.
 | |
|  * @uart_enable:	Do the work necessary to communicate with the uart
 | |
|  *			hw (enable clocks, etc.). This must be ref-counted.
 | |
|  * @uart_disable:	Do the work necessary to disable the uart hw
 | |
|  *			(disable clocks, etc.). This must be ref-counted.
 | |
|  * @uart_dev_suspend:	called during PM suspend, generally not needed
 | |
|  *			for real fiq mode debugger.
 | |
|  * @uart_dev_resume:	called during PM resume, generally not needed
 | |
|  *			for real fiq mode debugger.
 | |
|  */
 | |
| struct fiq_debugger_pdata {
 | |
| 	int (*uart_init)(struct platform_device *pdev);
 | |
| 	void (*uart_free)(struct platform_device *pdev);
 | |
| 	int (*uart_resume)(struct platform_device *pdev);
 | |
| 	int (*uart_getc)(struct platform_device *pdev);
 | |
| 	void (*uart_putc)(struct platform_device *pdev, unsigned int c);
 | |
| 	void (*uart_flush)(struct platform_device *pdev);
 | |
| 	void (*uart_enable)(struct platform_device *pdev);
 | |
| 	void (*uart_disable)(struct platform_device *pdev);
 | |
| 
 | |
| 	int (*uart_dev_suspend)(struct platform_device *pdev);
 | |
| 	int (*uart_dev_resume)(struct platform_device *pdev);
 | |
| 
 | |
| 	void (*fiq_enable)(struct platform_device *pdev, unsigned int fiq,
 | |
| 								bool enable);
 | |
| 	void (*fiq_ack)(struct platform_device *pdev, unsigned int fiq);
 | |
| 
 | |
| 	void (*force_irq)(struct platform_device *pdev, unsigned int irq);
 | |
| 	void (*force_irq_ack)(struct platform_device *pdev, unsigned int irq);
 | |
| 
 | |
| #ifdef CONFIG_RK_CONSOLE_THREAD
 | |
| 	void (*console_write)(struct platform_device *pdev, const char *s,
 | |
| 			      unsigned int count);
 | |
| 	int (*tty_write)(struct platform_device *pdev, const char *s, int count);
 | |
| 	int (*write_room)(struct platform_device *pdev);
 | |
| #endif
 | |
| #ifdef CONFIG_FIQ_DEBUGGER_TRUST_ZONE
 | |
| 	void (*switch_cpu)(struct platform_device *pdev, u32 cpu);
 | |
| 	void (*enable_debug)(struct platform_device *pdev, bool val);
 | |
| #endif
 | |
| };
 | |
| 
 | |
| #ifdef CONFIG_FIQ_GLUE
 | |
| void gic_set_irq_secure(struct irq_data *d);
 | |
| void gic_set_irq_priority(struct irq_data *d, u8 pri);
 | |
| #endif
 | |
| 
 | |
| void fiq_tty_wake_up(struct platform_device *pdev);
 | |
| #endif
 |