 786baecfe7
			
		
	
	
	786baecfe7
	
	
	
		
			
			As media/dvb will be removed, move it to a proper place. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
		
			
				
	
	
		
			131 lines
		
	
	
	
		
			3.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			131 lines
		
	
	
	
		
			3.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Header file for all dibusb-based-receivers.
 | |
|  *
 | |
|  * Copyright (C) 2004-5 Patrick Boettcher (patrick.boettcher@desy.de)
 | |
|  *
 | |
|  *	This program is free software; you can redistribute it and/or modify it
 | |
|  *	under the terms of the GNU General Public License as published by the Free
 | |
|  *	Software Foundation, version 2.
 | |
|  *
 | |
|  * see Documentation/dvb/README.dvb-usb for more information
 | |
|  */
 | |
| #ifndef _DVB_USB_DIBUSB_H_
 | |
| #define _DVB_USB_DIBUSB_H_
 | |
| 
 | |
| #ifndef DVB_USB_LOG_PREFIX
 | |
|  #define DVB_USB_LOG_PREFIX "dibusb"
 | |
| #endif
 | |
| #include "dvb-usb.h"
 | |
| 
 | |
| #include "dib3000.h"
 | |
| #include "dib3000mc.h"
 | |
| #include "mt2060.h"
 | |
| 
 | |
| /*
 | |
|  * protocol of all dibusb related devices
 | |
|  */
 | |
| 
 | |
| /*
 | |
|  * bulk msg to/from endpoint 0x01
 | |
|  *
 | |
|  * general structure:
 | |
|  * request_byte parameter_bytes
 | |
|  */
 | |
| 
 | |
| #define DIBUSB_REQ_START_READ			0x00
 | |
| #define DIBUSB_REQ_START_DEMOD			0x01
 | |
| 
 | |
| /*
 | |
|  * i2c read
 | |
|  * bulk write: 0x02 ((7bit i2c_addr << 1) & 0x01) register_bytes length_word
 | |
|  * bulk read:  byte_buffer (length_word bytes)
 | |
|  */
 | |
| #define DIBUSB_REQ_I2C_READ			0x02
 | |
| 
 | |
| /*
 | |
|  * i2c write
 | |
|  * bulk write: 0x03 (7bit i2c_addr << 1) register_bytes value_bytes
 | |
|  */
 | |
| #define DIBUSB_REQ_I2C_WRITE			0x03
 | |
| 
 | |
| /*
 | |
|  * polling the value of the remote control
 | |
|  * bulk write: 0x04
 | |
|  * bulk read:  byte_buffer (5 bytes)
 | |
|  */
 | |
| #define DIBUSB_REQ_POLL_REMOTE       0x04
 | |
| 
 | |
| /* additional status values for Hauppauge Remote Control Protocol */
 | |
| #define DIBUSB_RC_HAUPPAUGE_KEY_PRESSED	0x01
 | |
| #define DIBUSB_RC_HAUPPAUGE_KEY_EMPTY	0x03
 | |
| 
 | |
| /* streaming mode:
 | |
|  * bulk write: 0x05 mode_byte
 | |
|  *
 | |
|  * mode_byte is mostly 0x00
 | |
|  */
 | |
| #define DIBUSB_REQ_SET_STREAMING_MODE	0x05
 | |
| 
 | |
| /* interrupt the internal read loop, when blocking */
 | |
| #define DIBUSB_REQ_INTR_READ			0x06
 | |
| 
 | |
| /* io control
 | |
|  * 0x07 cmd_byte param_bytes
 | |
|  *
 | |
|  * param_bytes can be up to 32 bytes
 | |
|  *
 | |
|  * cmd_byte function    parameter name
 | |
|  * 0x00     power mode
 | |
|  *                      0x00      sleep
 | |
|  *                      0x01      wakeup
 | |
|  *
 | |
|  * 0x01     enable streaming
 | |
|  * 0x02     disable streaming
 | |
|  *
 | |
|  *
 | |
|  */
 | |
| #define DIBUSB_REQ_SET_IOCTL			0x07
 | |
| 
 | |
| /* IOCTL commands */
 | |
| 
 | |
| /* change the power mode in firmware */
 | |
| #define DIBUSB_IOCTL_CMD_POWER_MODE		0x00
 | |
| #define DIBUSB_IOCTL_POWER_SLEEP			0x00
 | |
| #define DIBUSB_IOCTL_POWER_WAKEUP			0x01
 | |
| 
 | |
| /* modify streaming of the FX2 */
 | |
| #define DIBUSB_IOCTL_CMD_ENABLE_STREAM	0x01
 | |
| #define DIBUSB_IOCTL_CMD_DISABLE_STREAM	0x02
 | |
| 
 | |
| struct dibusb_state {
 | |
| 	struct dib_fe_xfer_ops ops;
 | |
| 	int mt2060_present;
 | |
| 	u8 tuner_addr;
 | |
| };
 | |
| 
 | |
| struct dibusb_device_state {
 | |
| 	/* for RC5 remote control */
 | |
| 	int old_toggle;
 | |
| 	int last_repeat_count;
 | |
| };
 | |
| 
 | |
| extern struct i2c_algorithm dibusb_i2c_algo;
 | |
| 
 | |
| extern int dibusb_dib3000mc_frontend_attach(struct dvb_usb_adapter *);
 | |
| extern int dibusb_dib3000mc_tuner_attach (struct dvb_usb_adapter *);
 | |
| 
 | |
| extern int dibusb_streaming_ctrl(struct dvb_usb_adapter *, int);
 | |
| extern int dibusb_pid_filter(struct dvb_usb_adapter *, int, u16, int);
 | |
| extern int dibusb_pid_filter_ctrl(struct dvb_usb_adapter *, int);
 | |
| extern int dibusb2_0_streaming_ctrl(struct dvb_usb_adapter *, int);
 | |
| 
 | |
| extern int dibusb_power_ctrl(struct dvb_usb_device *, int);
 | |
| extern int dibusb2_0_power_ctrl(struct dvb_usb_device *, int);
 | |
| 
 | |
| #define DEFAULT_RC_INTERVAL 150
 | |
| //#define DEFAULT_RC_INTERVAL 100000
 | |
| 
 | |
| extern struct rc_map_table rc_map_dibusb_table[];
 | |
| extern int dibusb_rc_query(struct dvb_usb_device *, u32 *, int *);
 | |
| extern int dibusb_read_eeprom_byte(struct dvb_usb_device *, u8, u8 *);
 | |
| 
 | |
| #endif
 |