| 
									
										
										
										
											2006-11-24 11:22:57 +09:00
										 |  |  | #ifndef __ASM_SH_PUSH_SWITCH_H
 | 
					
						
							|  |  |  | #define __ASM_SH_PUSH_SWITCH_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <linux/timer.h>
 | 
					
						
							|  |  |  | #include <linux/interrupt.h>
 | 
					
						
							|  |  |  | #include <linux/workqueue.h>
 | 
					
						
							| 
									
										
										
										
											2006-12-07 13:20:58 +09:00
										 |  |  | #include <linux/platform_device.h>
 | 
					
						
							| 
									
										
										
										
											2006-11-24 11:22:57 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | struct push_switch { | 
					
						
							|  |  |  | 	/* switch state */ | 
					
						
							|  |  |  | 	unsigned int		state:1; | 
					
						
							|  |  |  | 	/* debounce timer */ | 
					
						
							|  |  |  | 	struct timer_list	debounce; | 
					
						
							|  |  |  | 	/* workqueue */ | 
					
						
							|  |  |  | 	struct work_struct	work; | 
					
						
							| 
									
										
										
										
											2006-12-07 13:20:58 +09:00
										 |  |  | 	/* platform device, for workqueue handler */ | 
					
						
							|  |  |  | 	struct platform_device	*pdev; | 
					
						
							| 
									
										
										
										
											2006-11-24 11:22:57 +09:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct push_switch_platform_info { | 
					
						
							|  |  |  | 	/* IRQ handler */ | 
					
						
							|  |  |  | 	irqreturn_t		(*irq_handler)(int irq, void *data); | 
					
						
							|  |  |  | 	/* Special IRQ flags */ | 
					
						
							|  |  |  | 	unsigned int		irq_flags; | 
					
						
							|  |  |  | 	/* Bit location of switch */ | 
					
						
							|  |  |  | 	unsigned int		bit; | 
					
						
							|  |  |  | 	/* Symbolic switch name */ | 
					
						
							|  |  |  | 	const char		*name; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* __ASM_SH_PUSH_SWITCH_H */
 |