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

Go to the source code of this file.

Data Structures

union  cx25840_ir_fifo_rec
 
struct  cx25840_ir_state
 

Macros

#define CX25840_IR_REG_BASE   0x200
 
#define CX25840_IR_CNTRL_REG   0x200
 
#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 CX25840_IR_TXCLK_REG   0x204
 
#define TXCLK_TCD   0x0000FFFF
 
#define CX25840_IR_RXCLK_REG   0x208
 
#define RXCLK_RCD   0x0000FFFF
 
#define CX25840_IR_CDUTY_REG   0x20C
 
#define CDUTY_CDC   0x0000000F
 
#define CX25840_IR_STATS_REG   0x210
 
#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 CX25840_IR_IRQEN_REG   0x214
 
#define IRQEN_RTE   0x00000001
 
#define IRQEN_ROE   0x00000002
 
#define IRQEN_RSE   0x00000010
 
#define IRQEN_TSE   0x00000020
 
#define IRQEN_MSK   0x00000033
 
#define CX25840_IR_FILTR_REG   0x218
 
#define FILTR_LPF   0x0000FFFF
 
#define CX25840_IR_FIFO_REG   0x23C
 
#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 CX25840_VIDCLK_FREQ   108000000 /* 108 MHz, BT.656 */
 
#define CX25840_IR_REFCLK_FREQ   (CX25840_VIDCLK_FREQ / 2)
 
#define CX25840_IR_RX_KFIFO_SIZE   (256 * sizeof(union cx25840_ir_fifo_rec))
 
#define CX25840_IR_TX_KFIFO_SIZE   (256 * sizeof(union cx25840_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_debug, int, 0644)
 
 MODULE_PARM_DESC (ir_debug,"enable integrated IR debug messages")
 
int cx25840_ir_irq_handler (struct v4l2_subdev *sd, u32 status, bool *handled)
 
int cx25840_ir_log_status (struct v4l2_subdev *sd)
 
int cx25840_ir_probe (struct v4l2_subdev *sd)
 
int cx25840_ir_remove (struct v4l2_subdev *sd)
 

Variables

struct v4l2_subdev_ir_ops cx25840_ir_ops
 

Macro Definition Documentation

#define CDUTY_CDC   0x0000000F

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

#define CNTRL_CPL   0x00001000

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

#define CNTRL_DMD   0x00000010

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

#define CNTRL_EDG   0x0000000C

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

#define CNTRL_EDG_BOTH   0x0000000C

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

#define CNTRL_EDG_FALL   0x00000004

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

#define CNTRL_EDG_NONE   0x00000000

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

#define CNTRL_EDG_RISE   0x00000008

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

#define CNTRL_LBM   0x00002000

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

#define CNTRL_MOD   0x00000020

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

#define CNTRL_R   0x00004000

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

#define CNTRL_RFE   0x00000040

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

#define CNTRL_RIC   0x00000400

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

#define CNTRL_RXE   0x00000100

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

#define CNTRL_TFE   0x00000080

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

#define CNTRL_TIC   0x00000800

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

#define CNTRL_TXE   0x00000200

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

#define CNTRL_WIN   0x00000003

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

#define CNTRL_WIN_3_3   0x00000000

Definition at line 39 of file cx25840-ir.c.

#define CNTRL_WIN_3_4   0x00000002

Definition at line 41 of file cx25840-ir.c.

#define CNTRL_WIN_4_3   0x00000001

Definition at line 40 of file cx25840-ir.c.

#define CNTRL_WIN_4_4   0x00000003

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

#define CX25840_IR_CDUTY_REG   0x20C

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

#define CX25840_IR_CNTRL_REG   0x200

Definition at line 38 of file cx25840-ir.c.

#define CX25840_IR_FIFO_REG   0x23C

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

#define CX25840_IR_FILTR_REG   0x218

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

#define CX25840_IR_IRQEN_REG   0x214

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

#define CX25840_IR_REFCLK_FREQ   (CX25840_VIDCLK_FREQ / 2)

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

#define CX25840_IR_REG_BASE   0x200

Definition at line 36 of file cx25840-ir.c.

#define CX25840_IR_RX_KFIFO_SIZE   (256 * sizeof(union cx25840_ir_fifo_rec))

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

#define CX25840_IR_RXCLK_REG   0x208

Definition at line 64 of file cx25840-ir.c.

#define CX25840_IR_STATS_REG   0x210

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

#define CX25840_IR_TX_KFIFO_SIZE   (256 * sizeof(union cx25840_ir_fifo_rec))

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

#define CX25840_IR_TXCLK_REG   0x204

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

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

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

#define FIFO_RX_DEPTH   8

Definition at line 93 of file cx25840-ir.c.

#define FIFO_RX_NDV   0x00020000

Definition at line 92 of file cx25840-ir.c.

FIFO_RXTX   0x0000FFFF

Definition at line 89 of file cx25840-ir.c.

#define FIFO_RXTX_LVL   0x00010000

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

#define FIFO_RXTX_RTO   0x0001FFFF

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

#define FIFO_TX_DEPTH   8

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

#define FILTR_LPF   0x0000FFFF

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

#define IRQEN_MSK   0x00000033

Definition at line 83 of file cx25840-ir.c.

#define IRQEN_ROE   0x00000002

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

#define IRQEN_RSE   0x00000010

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

#define IRQEN_RTE   0x00000001

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

#define IRQEN_TSE   0x00000020

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

#define RXCLK_RCD   0x0000FFFF

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

#define STATS_RBY   0x00000004

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

#define STATS_ROR   0x00000002

Definition at line 72 of file cx25840-ir.c.

#define STATS_RSR   0x00000010

Definition at line 75 of file cx25840-ir.c.

#define STATS_RTO   0x00000001

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

#define STATS_TBY   0x00000008

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

#define STATS_TSR   0x00000020

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

#define TXCLK_TCD   0x0000FFFF

Definition at line 62 of file cx25840-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 339 of file cx25840-ir.c.

Enumerator:
TX_FIFO_HALF_EMPTY 
TX_FIFO_EMPTY 
TX_FIFO_HALF_EMPTY 
TX_FIFO_EMPTY 

Definition at line 334 of file cx25840-ir.c.

Function Documentation

int cx25840_ir_irq_handler ( struct v4l2_subdev sd,
u32  status,
bool handled 
)

Definition at line 522 of file cx25840-ir.c.

int cx25840_ir_log_status ( struct v4l2_subdev sd)

Definition at line 1038 of file cx25840-ir.c.

int cx25840_ir_probe ( struct v4l2_subdev sd)

Definition at line 1223 of file cx25840-ir.c.

int cx25840_ir_remove ( struct v4l2_subdev sd)

Definition at line 1266 of file cx25840-ir.c.

module_param ( ir_debug  ,
int  ,
0644   
)
MODULE_PARM_DESC ( ir_debug  ,
"enable integrated IR debug messages"   
)

Variable Documentation

struct v4l2_subdev_ir_ops cx25840_ir_ops
Initial value:
= {
.rx_read = cx25840_ir_rx_read,
.rx_g_parameters = cx25840_ir_rx_g_parameters,
.rx_s_parameters = cx25840_ir_rx_s_parameters,
.tx_write = cx25840_ir_tx_write,
.tx_g_parameters = cx25840_ir_tx_g_parameters,
.tx_s_parameters = cx25840_ir_tx_s_parameters,
}

Definition at line 1178 of file cx25840-ir.c.