Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
cx23888-ir.c File Reference
#include <linux/kfifo.h>
#include <linux/slab.h>
#include <media/v4l2-device.h>
#include <media/v4l2-chip-ident.h>
#include <media/rc-core.h>
#include "cx23885.h"

Go to the source code of this file.

Data Structures

union  cx23888_ir_fifo_rec
 
struct  cx23888_ir_state
 

Macros

#define CX23888_IR_REG_BASE   0x170000
 
#define CX23888_IR_CNTRL_REG   0x170000
 
#define CNTRL_WIN_3_3   0x00000000
 
#define CNTRL_WIN_4_3   0x00000001
 
#define CNTRL_WIN_3_4   0x00000002
 
#define CNTRL_WIN_4_4   0x00000003
 
#define CNTRL_WIN   0x00000003
 
#define CNTRL_EDG_NONE   0x00000000
 
#define CNTRL_EDG_FALL   0x00000004
 
#define CNTRL_EDG_RISE   0x00000008
 
#define CNTRL_EDG_BOTH   0x0000000C
 
#define CNTRL_EDG   0x0000000C
 
#define CNTRL_DMD   0x00000010
 
#define CNTRL_MOD   0x00000020
 
#define CNTRL_RFE   0x00000040
 
#define CNTRL_TFE   0x00000080
 
#define CNTRL_RXE   0x00000100
 
#define CNTRL_TXE   0x00000200
 
#define CNTRL_RIC   0x00000400
 
#define CNTRL_TIC   0x00000800
 
#define CNTRL_CPL   0x00001000
 
#define CNTRL_LBM   0x00002000
 
#define CNTRL_R   0x00004000
 
#define CNTRL_IVO   0x00008000
 
#define CX23888_IR_TXCLK_REG   0x170004
 
#define TXCLK_TCD   0x0000FFFF
 
#define CX23888_IR_RXCLK_REG   0x170008
 
#define RXCLK_RCD   0x0000FFFF
 
#define CX23888_IR_CDUTY_REG   0x17000C
 
#define CDUTY_CDC   0x0000000F
 
#define CX23888_IR_STATS_REG   0x170010
 
#define STATS_RTO   0x00000001
 
#define STATS_ROR   0x00000002
 
#define STATS_RBY   0x00000004
 
#define STATS_TBY   0x00000008
 
#define STATS_RSR   0x00000010
 
#define STATS_TSR   0x00000020
 
#define CX23888_IR_IRQEN_REG   0x170014
 
#define IRQEN_RTE   0x00000001
 
#define IRQEN_ROE   0x00000002
 
#define IRQEN_RSE   0x00000010
 
#define IRQEN_TSE   0x00000020
 
#define CX23888_IR_FILTR_REG   0x170018
 
#define FILTR_LPF   0x0000FFFF
 
#define CX23888_IR_FIFO_REG   0x170040
 
#define FIFO_RXTX   0x0000FFFF
 
#define FIFO_RXTX_LVL   0x00010000
 
#define FIFO_RXTX_RTO   0x0001FFFF
 
#define FIFO_RX_NDV   0x00020000
 
#define FIFO_RX_DEPTH   8
 
#define FIFO_TX_DEPTH   8
 
#define CX23888_IR_SEEDP_REG   0x17001C
 
#define CX23888_IR_TIMOL_REG   0x170020
 
#define CX23888_IR_WAKE0_REG   0x170024
 
#define CX23888_IR_WAKE1_REG   0x170028
 
#define CX23888_IR_WAKE2_REG   0x17002C
 
#define CX23888_IR_MASK0_REG   0x170030
 
#define CX23888_IR_MASK1_REG   0x170034
 
#define CX23888_IR_MAKS2_REG   0x170038
 
#define CX23888_IR_DPIPG_REG   0x17003C
 
#define CX23888_IR_LEARN_REG   0x170044
 
#define CX23888_VIDCLK_FREQ   108000000 /* 108 MHz, BT.656 */
 
#define CX23888_IR_REFCLK_FREQ   (CX23888_VIDCLK_FREQ / 2)
 
#define CX23888_IR_RX_KFIFO_SIZE   (256 * sizeof(union cx23888_ir_fifo_rec))
 
#define CX23888_IR_TX_KFIFO_SIZE   (256 * sizeof(union cx23888_ir_fifo_rec))
 

Enumerations

enum  tx_fifo_watermark { TX_FIFO_HALF_EMPTY = 0, TX_FIFO_EMPTY = CNTRL_TIC, TX_FIFO_HALF_EMPTY = 0, TX_FIFO_EMPTY = CNTRL_TIC }
 
enum  rx_fifo_watermark { RX_FIFO_HALF_FULL = 0, RX_FIFO_NOT_EMPTY = CNTRL_RIC, RX_FIFO_HALF_FULL = 0, RX_FIFO_NOT_EMPTY = CNTRL_RIC }
 

Functions

 module_param (ir_888_debug, int, 0644)
 
 MODULE_PARM_DESC (ir_888_debug,"enable debug messages [CX23888 IR controller]")
 
int cx23888_ir_probe (struct cx23885_dev *dev)
 
int cx23888_ir_remove (struct cx23885_dev *dev)
 

Macro Definition Documentation

#define CDUTY_CDC   0x0000000F

Definition at line 74 of file cx23888-ir.c.

#define CNTRL_CPL   0x00001000

Definition at line 61 of file cx23888-ir.c.

#define CNTRL_DMD   0x00000010

Definition at line 53 of file cx23888-ir.c.

#define CNTRL_EDG   0x0000000C

Definition at line 52 of file cx23888-ir.c.

#define CNTRL_EDG_BOTH   0x0000000C

Definition at line 51 of file cx23888-ir.c.

#define CNTRL_EDG_FALL   0x00000004

Definition at line 49 of file cx23888-ir.c.

#define CNTRL_EDG_NONE   0x00000000

Definition at line 48 of file cx23888-ir.c.

#define CNTRL_EDG_RISE   0x00000008

Definition at line 50 of file cx23888-ir.c.

#define CNTRL_IVO   0x00008000

Definition at line 65 of file cx23888-ir.c.

#define CNTRL_LBM   0x00002000

Definition at line 62 of file cx23888-ir.c.

#define CNTRL_MOD   0x00000020

Definition at line 54 of file cx23888-ir.c.

#define CNTRL_R   0x00004000

Definition at line 63 of file cx23888-ir.c.

#define CNTRL_RFE   0x00000040

Definition at line 55 of file cx23888-ir.c.

#define CNTRL_RIC   0x00000400

Definition at line 59 of file cx23888-ir.c.

#define CNTRL_RXE   0x00000100

Definition at line 57 of file cx23888-ir.c.

#define CNTRL_TFE   0x00000080

Definition at line 56 of file cx23888-ir.c.

#define CNTRL_TIC   0x00000800

Definition at line 60 of file cx23888-ir.c.

#define CNTRL_TXE   0x00000200

Definition at line 58 of file cx23888-ir.c.

#define CNTRL_WIN   0x00000003

Definition at line 47 of file cx23888-ir.c.

#define CNTRL_WIN_3_3   0x00000000

Definition at line 43 of file cx23888-ir.c.

#define CNTRL_WIN_3_4   0x00000002

Definition at line 45 of file cx23888-ir.c.

#define CNTRL_WIN_4_3   0x00000001

Definition at line 44 of file cx23888-ir.c.

#define CNTRL_WIN_4_4   0x00000003

Definition at line 46 of file cx23888-ir.c.

#define CX23888_IR_CDUTY_REG   0x17000C

Definition at line 73 of file cx23888-ir.c.

#define CX23888_IR_CNTRL_REG   0x170000

Definition at line 42 of file cx23888-ir.c.

#define CX23888_IR_DPIPG_REG   0x17003C

Definition at line 111 of file cx23888-ir.c.

#define CX23888_IR_FIFO_REG   0x170040

Definition at line 94 of file cx23888-ir.c.

#define CX23888_IR_FILTR_REG   0x170018

Definition at line 90 of file cx23888-ir.c.

#define CX23888_IR_IRQEN_REG   0x170014

Definition at line 84 of file cx23888-ir.c.

#define CX23888_IR_LEARN_REG   0x170044

Definition at line 112 of file cx23888-ir.c.

#define CX23888_IR_MAKS2_REG   0x170038

Definition at line 110 of file cx23888-ir.c.

#define CX23888_IR_MASK0_REG   0x170030

Definition at line 108 of file cx23888-ir.c.

#define CX23888_IR_MASK1_REG   0x170034

Definition at line 109 of file cx23888-ir.c.

#define CX23888_IR_REFCLK_FREQ   (CX23888_VIDCLK_FREQ / 2)

Definition at line 115 of file cx23888-ir.c.

#define CX23888_IR_REG_BASE   0x170000

Definition at line 37 of file cx23888-ir.c.

#define CX23888_IR_RX_KFIFO_SIZE   (256 * sizeof(union cx23888_ir_fifo_rec))

Definition at line 127 of file cx23888-ir.c.

#define CX23888_IR_RXCLK_REG   0x170008

Definition at line 70 of file cx23888-ir.c.

#define CX23888_IR_SEEDP_REG   0x17001C

Definition at line 103 of file cx23888-ir.c.

#define CX23888_IR_STATS_REG   0x170010

Definition at line 76 of file cx23888-ir.c.

#define CX23888_IR_TIMOL_REG   0x170020

Definition at line 104 of file cx23888-ir.c.

#define CX23888_IR_TX_KFIFO_SIZE   (256 * sizeof(union cx23888_ir_fifo_rec))

Definition at line 128 of file cx23888-ir.c.

#define CX23888_IR_TXCLK_REG   0x170004

Definition at line 67 of file cx23888-ir.c.

#define CX23888_IR_WAKE0_REG   0x170024

Definition at line 105 of file cx23888-ir.c.

#define CX23888_IR_WAKE1_REG   0x170028

Definition at line 106 of file cx23888-ir.c.

#define CX23888_IR_WAKE2_REG   0x17002C

Definition at line 107 of file cx23888-ir.c.

#define CX23888_VIDCLK_FREQ   108000000 /* 108 MHz, BT.656 */

Definition at line 114 of file cx23888-ir.c.

#define FIFO_RX_DEPTH   8

Definition at line 99 of file cx23888-ir.c.

#define FIFO_RX_NDV   0x00020000

Definition at line 98 of file cx23888-ir.c.

#define FIFO_RXTX   0x0000FFFF

Definition at line 95 of file cx23888-ir.c.

#define FIFO_RXTX_LVL   0x00010000

Definition at line 96 of file cx23888-ir.c.

#define FIFO_RXTX_RTO   0x0001FFFF

Definition at line 97 of file cx23888-ir.c.

#define FIFO_TX_DEPTH   8

Definition at line 100 of file cx23888-ir.c.

#define FILTR_LPF   0x0000FFFF

Definition at line 91 of file cx23888-ir.c.

#define IRQEN_ROE   0x00000002

Definition at line 86 of file cx23888-ir.c.

#define IRQEN_RSE   0x00000010

Definition at line 87 of file cx23888-ir.c.

#define IRQEN_RTE   0x00000001

Definition at line 85 of file cx23888-ir.c.

#define IRQEN_TSE   0x00000020

Definition at line 88 of file cx23888-ir.c.

#define RXCLK_RCD   0x0000FFFF

Definition at line 71 of file cx23888-ir.c.

#define STATS_RBY   0x00000004

Definition at line 79 of file cx23888-ir.c.

#define STATS_ROR   0x00000002

Definition at line 78 of file cx23888-ir.c.

#define STATS_RSR   0x00000010

Definition at line 81 of file cx23888-ir.c.

#define STATS_RTO   0x00000001

Definition at line 77 of file cx23888-ir.c.

#define STATS_TBY   0x00000008

Definition at line 80 of file cx23888-ir.c.

#define STATS_TSR   0x00000020

Definition at line 82 of file cx23888-ir.c.

#define TXCLK_TCD   0x0000FFFF

Definition at line 68 of file cx23888-ir.c.

Enumeration Type Documentation

Enumerator:
RX_FIFO_HALF_FULL 
RX_FIFO_NOT_EMPTY 
RX_FIFO_HALF_FULL 
RX_FIFO_NOT_EMPTY 

Definition at line 354 of file cx23888-ir.c.

Enumerator:
TX_FIFO_HALF_EMPTY 
TX_FIFO_EMPTY 
TX_FIFO_HALF_EMPTY 
TX_FIFO_EMPTY 

Definition at line 349 of file cx23888-ir.c.

Function Documentation

int cx23888_ir_probe ( struct cx23885_dev dev)

Definition at line 1203 of file cx23888-ir.c.

int cx23888_ir_remove ( struct cx23885_dev dev)

Definition at line 1253 of file cx23888-ir.c.

module_param ( ir_888_debug  ,
int  ,
0644   
)
MODULE_PARM_DESC ( ir_888_debug  ,
"enable debug messages "  [CX23888 IR controller] 
)