Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
media
usb
b2c2
flexcop-usb.h
Go to the documentation of this file.
1
/*
2
* Linux driver for digital TV devices equipped with B2C2 FlexcopII(b)/III
3
* flexcop-usb.h - header file for the USB part
4
* see flexcop.c for copyright information
5
*/
6
#ifndef __FLEXCOP_USB_H_INCLUDED__
7
#define __FLEXCOP_USB_H_INCLUDED__
8
9
#include <
linux/usb.h
>
10
11
/* transfer parameters */
12
#define B2C2_USB_FRAMES_PER_ISO 4
13
#define B2C2_USB_NUM_ISO_URB 4
14
15
#define B2C2_USB_CTRL_PIPE_IN usb_rcvctrlpipe(fc_usb->udev, 0)
16
#define B2C2_USB_CTRL_PIPE_OUT usb_sndctrlpipe(fc_usb->udev, 0)
17
#define B2C2_USB_DATA_PIPE usb_rcvisocpipe(fc_usb->udev, 0x81)
18
19
struct
flexcop_usb
{
20
struct
usb_device *
udev
;
21
struct
usb_interface
*
uintf
;
22
23
u8
*
iso_buffer
;
24
int
buffer_size
;
25
dma_addr_t
dma_addr
;
26
27
struct
urb
*
iso_urb
[
B2C2_USB_NUM_ISO_URB
];
28
struct
flexcop_device
*
fc_dev
;
29
30
u8
tmp_buffer
[1023+190];
31
int
tmp_buffer_length
;
32
};
33
34
#if 0
35
/* request types TODO What is its use?*/
36
typedef
enum
{
37
38
} flexcop_usb_request_type_t;
39
#endif
40
41
/* request */
42
typedef
enum
{
43
B2C2_USB_WRITE_V8_MEM
= 0x04,
44
B2C2_USB_READ_V8_MEM
= 0x05,
45
B2C2_USB_READ_REG
= 0x08,
46
B2C2_USB_WRITE_REG
= 0x0A,
47
B2C2_USB_WRITEREGHI
= 0x0B,
48
B2C2_USB_FLASH_BLOCK
= 0x10,
49
B2C2_USB_I2C_REQUEST
= 0x11,
50
B2C2_USB_UTILITY
= 0x12,
51
}
flexcop_usb_request_t
;
52
53
/* function definition for I2C_REQUEST */
54
typedef
enum
{
55
USB_FUNC_I2C_WRITE
= 0x01,
56
USB_FUNC_I2C_MULTIWRITE
= 0x02,
57
USB_FUNC_I2C_READ
= 0x03,
58
USB_FUNC_I2C_REPEATWRITE
= 0x04,
59
USB_FUNC_GET_DESCRIPTOR
= 0x05,
60
USB_FUNC_I2C_REPEATREAD
= 0x06,
61
/* DKT 020208 - add this to support special case of DiSEqC */
62
USB_FUNC_I2C_CHECKWRITE
= 0x07,
63
USB_FUNC_I2C_CHECKRESULT
= 0x08,
64
}
flexcop_usb_i2c_function_t
;
65
66
/* function definition for UTILITY request 0x12
67
* DKT 020304 - new utility function */
68
typedef
enum
{
69
UTILITY_SET_FILTER
= 0x01,
70
UTILITY_DATA_ENABLE
= 0x02,
71
UTILITY_FLEX_MULTIWRITE
= 0x03,
72
UTILITY_SET_BUFFER_SIZE
= 0x04,
73
UTILITY_FLEX_OPERATOR
= 0x05,
74
UTILITY_FLEX_RESET300_START
= 0x06,
75
UTILITY_FLEX_RESET300_STOP
= 0x07,
76
UTILITY_FLEX_RESET300
= 0x08,
77
UTILITY_SET_ISO_SIZE
= 0x09,
78
UTILITY_DATA_RESET
= 0x0A,
79
UTILITY_GET_DATA_STATUS
= 0x10,
80
UTILITY_GET_V8_REG
= 0x11,
81
/* DKT 020326 - add function for v1.14 */
82
UTILITY_SRAM_WRITE
= 0x12,
83
UTILITY_SRAM_READ
= 0x13,
84
UTILITY_SRAM_TESTFILL
= 0x14,
85
UTILITY_SRAM_TESTSET
= 0x15,
86
UTILITY_SRAM_TESTVERIFY
= 0x16,
87
}
flexcop_usb_utility_function_t
;
88
89
#define B2C2_WAIT_FOR_OPERATION_RW (1*HZ)
90
#define B2C2_WAIT_FOR_OPERATION_RDW (3*HZ)
91
#define B2C2_WAIT_FOR_OPERATION_WDW (1*HZ)
92
93
#define B2C2_WAIT_FOR_OPERATION_V8READ (3*HZ)
94
#define B2C2_WAIT_FOR_OPERATION_V8WRITE (3*HZ)
95
#define B2C2_WAIT_FOR_OPERATION_V8FLASH (3*HZ)
96
97
typedef
enum
{
98
V8_MEMORY_PAGE_DVB_CI
= 0x20,
99
V8_MEMORY_PAGE_DVB_DS
= 0x40,
100
V8_MEMORY_PAGE_MULTI2
= 0x60,
101
V8_MEMORY_PAGE_FLASH
= 0x80
102
}
flexcop_usb_mem_page_t
;
103
104
#define V8_MEMORY_EXTENDED (1 << 15)
105
#define USB_MEM_READ_MAX 32
106
#define USB_MEM_WRITE_MAX 1
107
#define USB_FLASH_MAX 8
108
#define V8_MEMORY_PAGE_SIZE 0x8000
/* 32K */
109
#define V8_MEMORY_PAGE_MASK 0x7FFF
110
111
#endif
Generated on Thu Jan 10 2013 13:50:54 for Linux Kernel by
1.8.2