5 Replies Latest reply on Jul 12, 2018 8:16 AM by ShifangZ_26

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

      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,

        • 1. Re: HPD status shows low with CYPD-3120 solution with Customised dongle
          ShifangZ_26

          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

          • 2. Re: HPD status shows low with CYPD-3120 solution with Customised dongle

            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?

            • 3. Re: HPD status shows low with CYPD-3120 solution with Customised dongle

              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);

                              } 

              • 4. Re: HPD status shows low with CYPD-3120 solution with Customised dongle

                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?

                • 5. Re: HPD status shows low with CYPD-3120 solution with Customised dongle
                  ShifangZ_26

                  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