This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] TUSB1044: How to configure a PD controller to configure TUSB1044 and support virtual HPD?

Part Number: TUSB1044

When using a PD controller to configure a TUSB1044 (Type-C Linear Redriver) over I2C it is best to follow the scheme below for programming the PD in this regard. This scheme also includes support for applications in need of a "virtual" HPD. 

-------------------------------------------------------------------------------

// Register configurations written as follows: (addr, data)

// Example assumes following:

// Alt DP Mode Source with SWAP = 0; DIR0 = 0; DIR1 = 1;

// USB EQ downstream direction:  UTX1EQ_SEL = 5 and UTX2EQ_SEL = 5

// USB EQ upstream direction:  DRX1EQ_SEL = 2 and DRX2EQ_SEL = 2

// DP EQ:  6
 

// Initialize EQ each receiver.

(0x0A, 0x10) // Make sure EQ_OVERRIDE is set.

(0x10, 0x56) // UEQ2

(0x11, 0x56) // UEQ1

(0x20, 0x22) // DEQ2 for TypeC Rx2 port.

(0x21, 0x22) // DEQ1 for TypeC Rx1 Port

 
If USB-only normal orientation

{

                (0x11, 0x56) // Set UEQ for UTX1

                (0x0A, 0x11)

}

else if USB-only flip orientation

{

                (0x10, 0x56) // Set UEQ for UTX2

                (0x0A, 0x15)

}

Else if DP-only normal orientation

{

                (0x10, 0x66) // UEQ2

                (0x11, 0x66) // UEQ1

                (0x0A, 0x12)

}

Else if DP-only flip orientation

{

                (0x10, 0x66) // UEQ2

                (0x11, 0x66) // UEQ1

                (0x0A, 0x16)

}

Else if DP+USB normal orientation

{

                (0x10, 0x66) // Set DP EQ

                (0x11, 0x56) // Set USB EQ

                (0x0A, 0x13)

}

Else if DP+USB flip orientation

{

                (0x10, 0x56) // Set USB EQ

                (0x11, 0x66) // Set DP EQ

                (0x0A, 0x17)

}

Else nothing connected to Type-C

{

                (0x0A, 0x10)

                (0x10, 0x56) // UEQ2

                (0x11, 0x56) // UEQ1

}

 

//For using virtual HPD support. 

// HPDIN pin assumed to be low.

If (DP Alt mode)

{

                If (HPD = removal)

                {

                                HPDIN_OVERRIDE = 0;

                }

                Else //HPD insertion or IRQ_HPD

                {

                                HPDIN_OVERRIDE = 1;

                }

}