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 | |