Hello,
I would like to override the product & other strings using the I2C interface.
In our application the I2C lines are kept high so the device boots in 'unconfigured state'.
After this we can write data to register 0x0B to select correct USB2 polarity mapping, followed by writing 0x01 to register 0xF8 after which the device boots and enumerates without issue.
However we would also like to override the product strings so our device is more recognisable.
Before enabling the device by setting 0xF8 we now:
- Write register 0x05 with 0x90 to enable custom strings.
- Write register 0x24 with non-zero value to set product string length
- Write register 0x90+ with the string
However as soon as 0x24 is non-zero the device enumerates with 'USB device not recognised'.
After this, in device manager, we have a 'Generic USB hub' that is OK (but no change in string) and 'Generic SuperSpeed USB hub' for which windows can't load drivers.
For test we use:
- register 0x24 = 0x04
- register 0x90 = 0x4D
- register 0x91 = 0x00
- register 0x92 = 0x61
- register 0x93 =0x00
When repeating the same procedure for manufacturer string, the device enumerates OK but doesn't show a custom string.
Do we need to create a own driver/inf file in order for this to work or is there something else going on?