Does i.mx8M supports HDMI output 2K ? How to make it to output?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Does i.mx8M supports HDMI output 2K ? How to make it to output?

1,776 Views
94393400
Contributor III

We have a project ,the LCD is 2K (1600x2560), we checked the code in i.mx8M DRM side, in the struct drm_display_mode edid_cea_modes , there only supports output as blews:

static struct drm_display_mode edid_cea_modes[] = {
/* 3 - 720x480@60Hz */
{ DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 27000, 720, 736,
798, 858, 0, 480, 489, 495, 525, 0,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC),
.vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },
/* 4 - 1280x720@60Hz */
{ DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 1390,
1430, 1650, 0, 720, 725, 730, 750, 0,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC),
.vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },


/* 16 - 1920x1080@60Hz */
{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2008,
2052, 2200, 0, 1080, 1084, 1089, 1125, 0,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC),
.vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },
/* 97 - 3840x2160@60Hz */
{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 594000,
3840, 4016, 4104, 4400, 0,
2160, 2168, 2178, 2250, 0,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC),
.vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },
/* 96 - 3840x2160@30Hz */
{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 297000,
3840, 4016, 4104, 4400, 0,
2160, 2168, 2178, 2250, 0,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC),
.vrefresh = 30, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },
};

and we try to add the codes in to the struct :

/* 0x4c - 2560x1600@60Hz RB */
{ DRM_MODE("2560x1600", DRM_MODE_TYPE_DRIVER, 268500, 2560, 2608,
2640, 2720, 0, 1600, 1603, 1609, 1646, 0,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC) ,
.vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9,},

/* xx - 1600x2560@60Hz */
{ DRM_MODE("1600x2560", DRM_MODE_TYPE_DRIVER, 268500, 1600, 1603,
1609, 1646, 0, 2560, 2608, 2640, 2720, 0,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC),
.vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },

But it indicats that the clock can't support in the table  t28hpc_hdmitx_clock_control_table_pixel_out .

So, how to modify the codes to make the imx8M to support other HDMI display mode?

or who has the code in t28hpc_hdmitx_table.c which has the clock of 2K. many thanks. 

Labels (1)
Tags (1)
0 Kudos
Reply
3 Replies

1,572 Views
cmsd
Contributor III

I have a similar problem and need to make 137,930 KHz line in t28hpc_hdmitx_clock_control_table_pixel_out[][].

I've added the needed 1080x1920 mode line in edid_cea_modes[] in imx-hdp.c:

{ DRM_MODE("1080x1920", DRM_MODE_TYPE_DRIVER, 137930,

            1080, 1140, 1150, 1185, 0,
            1920, 1928, 1932, 1940, 0,
            DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC),
            .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },
 
If you find out how to create lines for t28hpc_hdmitx_clock_control_table_pixel_out[][], please reply.
0 Kudos
Reply

1,629 Views
jamesbone
NXP TechSupport
NXP TechSupport

hdmi supports only modes which are found in  struct fb_videomode,

so one can add timings for 2K modes based on datasheet

of these monitors. One can use mentioned 1024*768 fb_videomode as example.

0 Kudos
Reply

1,629 Views
94393400
Contributor III

Hi jamesbone

      The fb_videomode is the frame buffer , the imx 8M is not use this now, it use the DRM. Do you know how to add codes in DRM? 

0 Kudos
Reply