HPD status shows low with CYPD-3120 solution with Customised dongle

Announcements

Live Webinar: USB-C adoption. Simple & Cost-efficient solutions | April 18th @9am or 5pm CEST. Register now !

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Hi,

Need some clue on why HPD line showing low in log. I connected customised dongle which is under development with CCG3 CYPD-3125 EV Kit to see DP output from dongle. Observation shows DP signal is not send across the channel . Captured EZ PD ANalyser log show HPD is low.

Need some suggestion on how it can be debugged.

Thank you,

0 Likes
1 Solution

Hi Arun,

May I know why you need HPD IRQ bit set to HIGH? Is it the HPD signal have IRQ information? IRQ on HPD is LOW ~2ms alert to HPD signals. And you said the HPD on your end is always HIGH, CCG3 is reflecting the actual information.

If you could like to  change the firmware and list event of HPD. For example,

typedef enum

{

    HPD_EVENT_NONE = 0,         /**< No event. */

    HPD_EVENT_UNPLUG,           /**< DP Unplug event. */

    HPD_EVENT_PLUG,             /**< DP Plug event. */

    HPD_EVENT_IRQ,              /**< DP IRQ event. */

    HPD_COMMAND_DONE            /**< Requested HPD command is complete. */

} hpd_event_type_t;

And then, update function static void dp_ufp_enqueue_hpd(uint8_t port, hpd_event_type_t status) to make sure each event is match your expecting.

If you are difficult to coding it, I could like to recommend you wait for about 4 week to get latest Cypress firmware to test it.

Best Regards,

Lisa

View solution in original post

0 Likes
5 Replies
ShifangZ_26
Moderator
Moderator
Moderator
10 likes given 250 sign-ins 1000 replies posted

Hi Arun,

1. HPD input of CCG3 (CYPD3120) is LOW or HIGH on your test board? This is the first step I can recommend you to debug whether this is firmware issue or hardware issue. If DP monitor have been attached, HPD shall be HIGH and CCG3 (CYPD3120) will send out "ATTENTION" and with HPD information.

2. From the log you supplied, the C to DP configuration is same as Cypress example firmware. The DisplayPort pin assignment E is supported on C to DP dongle. Please kindly check whether the hardware is design is suit for pin assignment E on Lan0 - Lan3 or not.

Best Regards,

Lisa

0 Likes
Anonymous
Not applicable

Hi Lisa,

HPD is high @ CCYPD-3120 Pin 35 which we mapped to HPD input

///log

DisplayPort Status0x8
Reserved (31...9)0
IRQ HPD (8)No IRQ HPD since last status message
DataGridViewRow { Index=23 }

HPD High

Let me know how  IRQ HPD (8) will get set?

0 Likes
Anonymous
Not applicable

HI Lisa,

From H/W I can toggle HPD and stepped through the code, In my obervation

dp_ufp_enqueue_hpd() function, always else part is getting executed. Can you suggest how we can overcome the issue, so that HPD IRQ bit will get set in the CC Status message whenever I toggle the HPD line on system.

/* If next queued event is IRQ we can combine in one Attention */

                          

               if ((((hpd_event_type_t)(DP_HPD_STATE_MASK & (dp[port].hpd_state >>

                                        (dp[port].queue_read_index - DP_QUEUE_STATE_SIZE)))) == HPD_EVENT_IRQ) &&

                        (dp[port].queue_read_index != (uint8_t)DP_QUEUE_EMPTY_INDEX))

                {

          

                    /* Decrease queue size */

                    dp[port].queue_read_index -= DP_QUEUE_STATE_SIZE;

                    /* Update IRQ field in status */

                    dp_ufp_update_status_field(port, DP_STAT_IRQ, true);

                    is_att_needed = true;

        

                    }

                else

                {

                    /* Zero IRQ status */

                    dp_ufp_update_status_field(port, DP_STAT_IRQ, false);

                } 

0 Likes
Anonymous
Not applicable

Looks like HPD_EVENT_IRQ is not generating, How we can tirigger it. 

System that we designing is such that Dongle logic is always coupled to Monitor and hence HPD is high always.  As I said earlier forcefully toggle the HPD line to see transition and from code only Unplug/Plug sequence is seen no HPD_IRQ event.

Any suggestion?

0 Likes

Hi Arun,

May I know why you need HPD IRQ bit set to HIGH? Is it the HPD signal have IRQ information? IRQ on HPD is LOW ~2ms alert to HPD signals. And you said the HPD on your end is always HIGH, CCG3 is reflecting the actual information.

If you could like to  change the firmware and list event of HPD. For example,

typedef enum

{

    HPD_EVENT_NONE = 0,         /**< No event. */

    HPD_EVENT_UNPLUG,           /**< DP Unplug event. */

    HPD_EVENT_PLUG,             /**< DP Plug event. */

    HPD_EVENT_IRQ,              /**< DP IRQ event. */

    HPD_COMMAND_DONE            /**< Requested HPD command is complete. */

} hpd_event_type_t;

And then, update function static void dp_ufp_enqueue_hpd(uint8_t port, hpd_event_type_t status) to make sure each event is match your expecting.

If you are difficult to coding it, I could like to recommend you wait for about 4 week to get latest Cypress firmware to test it.

Best Regards,

Lisa

0 Likes