xref: /openbmc/linux/drivers/media/common/siano/smsir.h (revision 01da4444)
101da4444SNishad Kamdar /* SPDX-License-Identifier: GPL-2.0+ */
21e6f57b2SMauro Carvalho Chehab /*
31e6f57b2SMauro Carvalho Chehab  *
41e6f57b2SMauro Carvalho Chehab  * Siano Mobile Silicon, Inc.
51e6f57b2SMauro Carvalho Chehab  * MDTV receiver kernel modules.
61e6f57b2SMauro Carvalho Chehab  * Copyright (C) 2006-2009, Uri Shkolnik
71e6f57b2SMauro Carvalho Chehab  *
81e6f57b2SMauro Carvalho Chehab  * Copyright (c) 2010 - Mauro Carvalho Chehab
91e6f57b2SMauro Carvalho Chehab  *	- Ported the driver to use rc-core
101e6f57b2SMauro Carvalho Chehab  *	- IR raw event decoding is now done at rc-core
111e6f57b2SMauro Carvalho Chehab  *	- Code almost re-written
121e6f57b2SMauro Carvalho Chehab  */
130013ca8cSMauro Carvalho Chehab 
140013ca8cSMauro Carvalho Chehab #ifndef __SMS_IR_H__
150013ca8cSMauro Carvalho Chehab #define __SMS_IR_H__
160013ca8cSMauro Carvalho Chehab 
170013ca8cSMauro Carvalho Chehab #include <linux/input.h>
180013ca8cSMauro Carvalho Chehab #include <media/rc-core.h>
190013ca8cSMauro Carvalho Chehab 
200013ca8cSMauro Carvalho Chehab struct smscore_device_t;
210013ca8cSMauro Carvalho Chehab 
220013ca8cSMauro Carvalho Chehab struct ir_t {
230013ca8cSMauro Carvalho Chehab 	struct rc_dev *dev;
240013ca8cSMauro Carvalho Chehab 	char name[40];
250013ca8cSMauro Carvalho Chehab 	char phys[32];
260013ca8cSMauro Carvalho Chehab 
270013ca8cSMauro Carvalho Chehab 	char *rc_codes;
280013ca8cSMauro Carvalho Chehab 
290013ca8cSMauro Carvalho Chehab 	u32 timeout;
300013ca8cSMauro Carvalho Chehab 	u32 controller;
310013ca8cSMauro Carvalho Chehab };
320013ca8cSMauro Carvalho Chehab 
33fdd1eeb4SMauro Carvalho Chehab #ifdef CONFIG_SMS_SIANO_RC
340013ca8cSMauro Carvalho Chehab int sms_ir_init(struct smscore_device_t *coredev);
350013ca8cSMauro Carvalho Chehab void sms_ir_exit(struct smscore_device_t *coredev);
360013ca8cSMauro Carvalho Chehab void sms_ir_event(struct smscore_device_t *coredev,
370013ca8cSMauro Carvalho Chehab 			const char *buf, int len);
38fdd1eeb4SMauro Carvalho Chehab #else
sms_ir_init(struct smscore_device_t * coredev)39fdd1eeb4SMauro Carvalho Chehab inline static int sms_ir_init(struct smscore_device_t *coredev) {
40fdd1eeb4SMauro Carvalho Chehab 	return 0;
41fdd1eeb4SMauro Carvalho Chehab }
sms_ir_exit(struct smscore_device_t * coredev)42fdd1eeb4SMauro Carvalho Chehab inline static void sms_ir_exit(struct smscore_device_t *coredev) {};
sms_ir_event(struct smscore_device_t * coredev,const char * buf,int len)43fdd1eeb4SMauro Carvalho Chehab inline static void sms_ir_event(struct smscore_device_t *coredev,
44fdd1eeb4SMauro Carvalho Chehab 			const char *buf, int len) {};
45fdd1eeb4SMauro Carvalho Chehab #endif
460013ca8cSMauro Carvalho Chehab 
470013ca8cSMauro Carvalho Chehab #endif /* __SMS_IR_H__ */
480013ca8cSMauro Carvalho Chehab 
49