Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef _DVB_USB_DIGITV_H_
0003 #define _DVB_USB_DIGITV_H_
0004 
0005 #define DVB_USB_LOG_PREFIX "digitv"
0006 #include "dvb-usb.h"
0007 
0008 struct digitv_state {
0009     int is_nxt6000;
0010 
0011     unsigned char sndbuf[7];
0012     unsigned char rcvbuf[7];
0013 };
0014 
0015 /* protocol (from usblogging and the SDK:
0016  *
0017  * Always 7 bytes bulk message(s) for controlling
0018  *
0019  * First byte describes the command. Reads are 2 consecutive transfer (as always).
0020  *
0021  * General structure:
0022  *
0023  * write or first message of a read:
0024  * <cmdbyte> VV <len> B0 B1 B2 B3
0025  *
0026  * second message of a read
0027  * <cmdbyte> VV <len> R0 R1 R2 R3
0028  *
0029  * whereas 0 < len <= 4
0030  *
0031  * I2C address is stored somewhere inside the device.
0032  *
0033  * 0x01 read from EEPROM
0034  *  VV = offset; B* = 0; R* = value(s)
0035  *
0036  * 0x02 read register of the COFDM
0037  *  VV = register; B* = 0; R* = value(s)
0038  *
0039  * 0x05 write register of the COFDM
0040  *  VV = register; B* = value(s);
0041  *
0042  * 0x06 write to the tuner (only for NXT6000)
0043  *  VV = 0; B* = PLL data; len = 4;
0044  *
0045  * 0x03 read remote control
0046  *  VV = 0; B* = 0; len = 4; R* = key
0047  *
0048  * 0x07 write to the remote (don't know why one should this, resetting ?)
0049  *  VV = 0; B* = key; len = 4;
0050  *
0051  * 0x08 write remote type
0052  *  VV = 0; B[0] = 0x01, len = 4
0053  *
0054  * 0x09 write device init
0055  *  TODO
0056  */
0057 #define USB_READ_EEPROM         1
0058 
0059 #define USB_READ_COFDM          2
0060 #define USB_WRITE_COFDM         5
0061 
0062 #define USB_WRITE_TUNER         6
0063 
0064 #define USB_READ_REMOTE         3
0065 #define USB_WRITE_REMOTE        7
0066 #define USB_WRITE_REMOTE_TYPE   8
0067 
0068 #define USB_DEV_INIT            9
0069 
0070 #endif