Success 
Finally, I wrote this:
Code:
//This is a callback that gets called after control transfers:
void RTL2832::control(const Transfer_t *transfer)
{
memcpy((void*)&controlTransferResult, (void*)transfer, sizeof(controlTransferResult));
control_transfer_completed = true;
}
int RTL2832::control_transfer(uint8_t bmRequestType, uint8_t bRequest, uint16_t wValue, uint16_t wIndex, unsigned char *data, uint16_t wLength, unsigned int timeout)
{
memset((void*)&controlTransferResult, 0, sizeof(controlTransferResult)); //<-needed?
control_transfer_completed = false;
mk_setup(rtlsetup, bmRequestType, bRequest, wValue, wIndex, wLength);
bool b = queue_Control_Transfer(dev, &rtlsetup, (void*)data, this);
if (b) {
unsigned long m = millis();
while ( control_transfer_completed == false ) {
if (millis() - m > timeout) return _RTL_USB_ERROR_TIMEOUT;
yield();
}
memcpy((void*)data, (void*)controlTransferResult.buffer, controlTransferResult.length);
print_hexbytes(controlTransferResult.buffer, controlTransferResult.length);
return controlTransferResult.length;
}
return _RTL_USB_ERROR;
}
..and after porting some 100 lines more, I got this:
Code:
USB2 PLL running
reset waited 6
USBHS_ASYNCLISTADDR = 0
USBHS_PERIODICLISTBASE = 20003000
periodictable = 20003000
port change: 10001803
connect
begin reset
port change: 18001205
port enabled
end recovery
new_Device: 480 Mbit/sec
new_Pipe
enumeration:
enumeration:
enumeration:
Device Descriptor:
12 01 00 02 00 00 00 40 DA 0B 38 28 00 01 01 02 03 01
VendorID = 0BDA, ProductID = 2838, Version = 0100
Class/Subclass/Protocol = 0 / 0 / 0
Number of Configurations = 1
enumeration:
enumeration:
Manufacturer: Realtek
enumeration:
Product: RTL2838UHIDIR
enumeration:
Serial Number: 00000001
enumeration:
Config data length = 34
enumeration:
Configuration Descriptor:
09 02 22 00 02 01 04 80 FA
NumInterfaces = 2
ConfigurationValue = 1
09 04 00 00 01 FF FF FF 05
Interface = 0
Number of endpoints = 1
Class/Subclass/Protocol = 255 / 255 / 255
07 05 81 02 00 02 00
Endpoint = 1 IN
Type = Bulk
Max Size = 512
Polling Interval = 0
09 04 01 00 00 FF FF FF 05
Interface = 1
Number of endpoints = 0
Class/Subclass/Protocol = 255 / 255 / 255
enumeration:
USBHub memory usage = 960
USBHub claim_device this=20002040
USBHub memory usage = 960
USBHub claim_device this=20002400
-------------------------------
Generic RTL2832U OEM claim this=200027C0, type=0 , bDeviceClass = 0, bDeviceSubClass = 0, bDeviceProtocol = 0
09 04 00 00 01 FF FF FF 05 07 05 81 02 00 02 00 09 04 01 00 00 FF FF FF 05
len = 25
Endpoints = 1
-------------------------------
Initializing
[....]
Found Rafael Micro R820T tuner
Initialized.
(scroll down)
So, it can initialize the RTL2832 i2c device and talk via I2C to the R820T tuner .