I am using the DS80PCI402SQ as a redriver in our system. We are only using the "A" lanes, all 4. I am trying to get it configured via I2C but I am not getting output. I can see signal at the input but no output. The output pins are at a high voltage level.
I have the following pin connections:
DEMB0/1: float
DENA0/1: I2C
PRSNT: low
ENSMB: high
EQB/A0/1: float
RATE: float
RXDET: float
LPBK: float
SD_TH: float
ALL_DONE: float
VDD_SEL: float
VIN: float
VDD: 2.5V
This is the I2C setting: (note, here I am trying to force the inputs and outputs to be on for "A" lanes. This is after trying only the suggested default config in the data sheet)
error = DC80PCI402_WRITE(i2cCh, 0x01, 0x0f );
error = DC80PCI402_READ(0, 0x01, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x02, 0x31 );
error = DC80PCI402_READ(0, 0x02, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x06, 0x18 );
error = DC80PCI402_READ(0, 0x06, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x0f, 0x00 );
error = DC80PCI402_READ(0, 0x0f, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x10, 0xed );
error = DC80PCI402_READ(0, 0x10, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x11, 0x00 );
error = DC80PCI402_READ(0, 0x11, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x16, 0x00 );
error = DC80PCI402_READ(0, 0x16, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x17, 0xed );
error = DC80PCI402_READ(0, 0x17, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x18, 0x00 );
error = DC80PCI402_READ(0, 0x18, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x1D, 0x00 );
error = DC80PCI402_READ(0, 0x1D, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x1E, 0xed );
error = DC80PCI402_READ(0, 0x1E, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x1F, 0x00 );
error = DC80PCI402_READ(0, 0x1F, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x24, 0x00 );
error = DC80PCI402_READ(0, 0x24, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x25, 0xed );
error = DC80PCI402_READ(0, 0x25, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x26, 0x00 );
error = DC80PCI402_READ(0, 0x26, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x2b, 0x2c );
error = DC80PCI402_READ(0, 0x2b, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x2c, 0x00 );
error = DC80PCI402_READ(0, 0x2c, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x2d, 0xed );
error = DC80PCI402_READ(0, 0x2d, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x2e, 0x00 );
error = DC80PCI402_READ(0, 0x2e, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x32, 0x2c );
error = DC80PCI402_READ(0, 0x32, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x33, 0x00 );
error = DC80PCI402_READ(0, 0x33, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x34, 0xed );
error = DC80PCI402_READ(0, 0x34, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x35, 0x00 );
error = DC80PCI402_READ(0, 0x35, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x39, 0x2c );
error = DC80PCI402_READ(0, 0x39, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x3a, 0x00 );
error = DC80PCI402_READ(0, 0x3a, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x3b, 0xed );
error = DC80PCI402_READ(0, 0x3b, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x3c, 0x00 );
error = DC80PCI402_READ(0, 0x3c, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x40, 0x2c );
error = DC80PCI402_READ(0, 0x40, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x41, 0x00 );
error = DC80PCI402_READ(0, 0x41, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x42, 0xed );
error = DC80PCI402_READ(0, 0x42, &Data);
error = DC80PCI402_WRITE(i2cCh, 0x43, 0x00 );
error = DC80PCI402_READ(0, 0x43, &Data);
Also, when we read back register 0x0A, we read 0xff even though I can see a signal at the input. I expect to see 0x0f