| 
									
										
										
										
											2005-11-08 21:37:32 -08:00
										 |  |  | #ifndef _IR_I2C
 | 
					
						
							|  |  |  | #define _IR_I2C
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-17 13:28:38 -03:00
										 |  |  | #include <media/rc-core.h>
 | 
					
						
							| 
									
										
										
										
											2005-11-08 21:37:32 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-23 01:23:10 -03:00
										 |  |  | #define DEFAULT_POLLING_INTERVAL	100	/* ms */
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-11-08 21:37:32 -08:00
										 |  |  | struct IR_i2c; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct IR_i2c { | 
					
						
							| 
									
										
										
										
											2010-04-02 20:01:00 -03:00
										 |  |  | 	char		       *ir_codes; | 
					
						
							| 
									
										
										
										
											2009-05-13 16:48:50 -03:00
										 |  |  | 	struct i2c_client      *c; | 
					
						
							| 
									
										
										
										
											2010-10-29 16:08:23 -03:00
										 |  |  | 	struct rc_dev          *rc; | 
					
						
							| 
									
										
										
										
											2010-10-29 16:08:07 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-11-08 21:37:32 -08:00
										 |  |  | 	/* Used to avoid fast repeating */ | 
					
						
							|  |  |  | 	unsigned char          old; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-23 01:23:10 -03:00
										 |  |  | 	u32                    polling_interval; /* in ms */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-07 07:43:43 -03:00
										 |  |  | 	struct delayed_work    work; | 
					
						
							| 
									
										
										
										
											2009-05-13 16:48:07 -03:00
										 |  |  | 	char                   name[32]; | 
					
						
							| 
									
										
										
										
											2005-11-08 21:37:32 -08:00
										 |  |  | 	char                   phys[32]; | 
					
						
							| 
									
										
										
										
											2014-04-03 20:31:25 -03:00
										 |  |  | 	int                    (*get_key)(struct IR_i2c *ir, enum rc_type *protocol, | 
					
						
							|  |  |  | 					  u32 *scancode, u8 *toggle); | 
					
						
							| 
									
										
										
										
											2005-11-08 21:37:32 -08:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2009-05-13 16:49:32 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-28 11:44:05 -03:00
										 |  |  | enum ir_kbd_get_key_fn { | 
					
						
							|  |  |  | 	IR_KBD_GET_KEY_CUSTOM = 0, | 
					
						
							|  |  |  | 	IR_KBD_GET_KEY_PIXELVIEW, | 
					
						
							|  |  |  | 	IR_KBD_GET_KEY_HAUP, | 
					
						
							|  |  |  | 	IR_KBD_GET_KEY_KNC1, | 
					
						
							|  |  |  | 	IR_KBD_GET_KEY_FUSIONHDTV, | 
					
						
							|  |  |  | 	IR_KBD_GET_KEY_HAUP_XVR, | 
					
						
							|  |  |  | 	IR_KBD_GET_KEY_AVERMEDIA_CARDBUS, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-13 16:49:32 -03:00
										 |  |  | /* Can be passed when instantiating an ir_video i2c device */ | 
					
						
							|  |  |  | struct IR_i2c_init_data { | 
					
						
							| 
									
										
										
										
											2010-04-02 20:01:00 -03:00
										 |  |  | 	char			*ir_codes; | 
					
						
							| 
									
										
										
										
											2010-09-23 01:23:10 -03:00
										 |  |  | 	const char		*name; | 
					
						
							| 
									
										
										
										
											2012-10-11 19:11:54 -03:00
										 |  |  | 	u64			type; /* RC_BIT_RC5, etc */ | 
					
						
							| 
									
										
										
										
											2010-09-23 01:23:10 -03:00
										 |  |  | 	u32			polling_interval; /* 0 means DEFAULT_POLLING_INTERVAL */ | 
					
						
							| 
									
										
										
										
											2010-10-29 16:08:07 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-28 11:44:05 -03:00
										 |  |  | 	/*
 | 
					
						
							|  |  |  | 	 * Specify either a function pointer or a value indicating one of | 
					
						
							|  |  |  | 	 * ir_kbd_i2c's internal get_key functions | 
					
						
							|  |  |  | 	 */ | 
					
						
							| 
									
										
										
										
											2014-04-03 20:31:25 -03:00
										 |  |  | 	int                    (*get_key)(struct IR_i2c *ir, enum rc_type *protocol, | 
					
						
							|  |  |  | 					  u32 *scancode, u8 *toggle); | 
					
						
							| 
									
										
										
										
											2009-07-28 11:44:05 -03:00
										 |  |  | 	enum ir_kbd_get_key_fn internal_get_key_func; | 
					
						
							| 
									
										
										
										
											2010-11-12 09:02:40 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	struct rc_dev		*rc_dev; | 
					
						
							| 
									
										
										
										
											2009-05-13 16:49:32 -03:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2005-11-08 21:37:32 -08:00
										 |  |  | #endif
 |