1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 3 * ImgTec IR Raw Decoder found in PowerDown Controller. 4 * 5 * Copyright 2010-2014 Imagination Technologies Ltd. 6 */ 7 8 #ifndef _IMG_IR_RAW_H_ 9 #define _IMG_IR_RAW_H_ 10 11 struct img_ir_priv; 12 13 #ifdef CONFIG_IR_IMG_RAW 14 15 /** 16 * struct img_ir_priv_raw - Private driver data for raw decoder. 17 * @rdev: Raw remote control device 18 * @timer: Timer to echo samples to keep soft decoders happy. 19 * @last_status: Last raw status bits. 20 */ 21 struct img_ir_priv_raw { 22 struct rc_dev *rdev; 23 struct timer_list timer; 24 u32 last_status; 25 }; 26 27 static inline bool img_ir_raw_enabled(struct img_ir_priv_raw *raw) 28 { 29 return raw->rdev; 30 }; 31 32 void img_ir_isr_raw(struct img_ir_priv *priv, u32 irq_status); 33 void img_ir_setup_raw(struct img_ir_priv *priv); 34 int img_ir_probe_raw(struct img_ir_priv *priv); 35 void img_ir_remove_raw(struct img_ir_priv *priv); 36 37 #else 38 39 struct img_ir_priv_raw { 40 }; 41 static inline bool img_ir_raw_enabled(struct img_ir_priv_raw *raw) 42 { 43 return false; 44 }; 45 static inline void img_ir_isr_raw(struct img_ir_priv *priv, u32 irq_status) 46 { 47 } 48 static inline void img_ir_setup_raw(struct img_ir_priv *priv) 49 { 50 } 51 static inline int img_ir_probe_raw(struct img_ir_priv *priv) 52 { 53 return -ENODEV; 54 } 55 static inline void img_ir_remove_raw(struct img_ir_priv *priv) 56 { 57 } 58 59 #endif /* CONFIG_IR_IMG_RAW */ 60 61 #endif /* _IMG_IR_RAW_H_ */ 62