mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 20:32:04 +09:00
media: hdmitx: Add a new hdmi resolution, 480x272p60hz
Change-Id: I7fa18b6168ffebcca4acaeff9dfd2492e7aab4d7
This commit is contained in:
@@ -2175,6 +2175,54 @@ static struct hdmi_format_para fmt_para_480x320p60_4x3 = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct hdmi_format_para fmt_para_480x272p60_4x3 = {
|
||||
.vic = HDMI_480x272p60_4x3,
|
||||
.name = "480x272p60hz",
|
||||
.sname = "480x272p60hz",
|
||||
.pixel_repetition_factor = 0,
|
||||
.progress_mode = 1,
|
||||
.scrambler_en = 0,
|
||||
.tmds_clk_div40 = 0,
|
||||
.tmds_clk = 25200,
|
||||
.timing = {
|
||||
.pixel_freq = 25200,
|
||||
.frac_freq = 25200,
|
||||
.h_freq = 31500,
|
||||
.v_freq = 60000,
|
||||
.vsync_polarity = 0, /* -VSync */
|
||||
.hsync_polarity = 0, /* -HSync */
|
||||
.h_active = 480,
|
||||
.h_total = 800,
|
||||
.h_blank = 320,
|
||||
.h_front = 120,
|
||||
.h_sync = 100,
|
||||
.h_back = 100,
|
||||
.v_active = 272,
|
||||
.v_total = 525,
|
||||
.v_blank = 253,
|
||||
.v_front = 8,
|
||||
.v_sync = 7,
|
||||
.v_back = 238,
|
||||
.v_sync_ln = 1,
|
||||
},
|
||||
.hdmitx_vinfo = {
|
||||
.name = "480x272p60hz",
|
||||
.mode = VMODE_HDMI,
|
||||
.width = 480,
|
||||
.height = 272,
|
||||
.field_height = 272,
|
||||
.aspect_ratio_num = 4,
|
||||
.aspect_ratio_den = 3,
|
||||
.sync_duration_num = 60,
|
||||
.sync_duration_den = 1,
|
||||
.video_clk = 25200000,
|
||||
.htotal = 800,
|
||||
.vtotal = 525,
|
||||
.viu_color_fmt = COLOR_FMT_YUV444,
|
||||
.viu_mux = VIU_MUX_ENCP,
|
||||
},
|
||||
};
|
||||
|
||||
static struct hdmi_format_para fmt_para_480x800p60_4x3 = {
|
||||
.vic = HDMI_480x800p60_4x3,
|
||||
.name = "480x800p60hz",
|
||||
@@ -2343,6 +2391,7 @@ static struct hdmi_format_para *all_fmt_paras[] = {
|
||||
&fmt_para_800x480p60_5x3,
|
||||
&fmt_para_640x480p60_4x3,
|
||||
&fmt_para_480x320p60_4x3,
|
||||
&fmt_para_480x272p60_4x3,
|
||||
&fmt_para_480x800p60_4x3,
|
||||
&fmt_para_custombuilt,
|
||||
&fmt_para_null_hdmi_fmt,
|
||||
|
||||
@@ -2205,6 +2205,7 @@ static struct dispmode_vic dispmode_vic_tab[] = {
|
||||
{"800x480p60hz", HDMI_800x480p60_5x3},
|
||||
{"640x480p60hz", HDMI_640x480p60_4x3},
|
||||
{"480x320p60hz", HDMI_480x320p60_4x3},
|
||||
{"480x272p60hz", HDMI_480x272p60_4x3},
|
||||
{"480x800p60hz", HDMI_480x800p60_4x3},
|
||||
{"custombuilt", HDMI_CUSTOMBUILT},
|
||||
};
|
||||
|
||||
@@ -677,6 +677,17 @@ static struct hdmitx_vidpara hdmi_tx_video_params[] = {
|
||||
.ss = SS_SCAN_UNDER,
|
||||
.sc = SC_SCALE_HORIZ_VERT,
|
||||
},
|
||||
{
|
||||
.VIC = HDMI_480x272p60_4x3,
|
||||
.color_prefer = COLORSPACE_RGB444,
|
||||
.color_depth = COLORDEPTH_24B,
|
||||
.bar_info = B_BAR_VERT_HORIZ,
|
||||
.repeat_time = NO_REPEAT,
|
||||
.aspect_ratio = ASPECT_RATIO_SAME_AS_SOURCE,
|
||||
.cc = CC_ITU709,
|
||||
.ss = SS_SCAN_UNDER,
|
||||
.sc = SC_SCALE_HORIZ_VERT,
|
||||
},
|
||||
{
|
||||
.VIC = HDMI_480x800p60_4x3,
|
||||
.color_prefer = COLORSPACE_RGB444,
|
||||
|
||||
@@ -1123,6 +1123,32 @@ static const struct reg_s tvregs_480x320p_60hz[] = {
|
||||
{MREG_END_MARKER, 0}
|
||||
};
|
||||
|
||||
static const struct reg_s tvregs_480x272p_60hz[] = {
|
||||
{P_VENC_VDAC_SETTING, 0xff,},
|
||||
{P_ENCP_VIDEO_EN, 0,},
|
||||
{P_ENCI_VIDEO_EN, 0,},
|
||||
|
||||
{P_ENCP_VIDEO_MODE, 0x4040,},
|
||||
{P_ENCP_VIDEO_MODE_ADV, 0x18,},
|
||||
|
||||
{P_ENCP_VIDEO_MAX_PXCNT, 0x31F,},
|
||||
{P_ENCP_VIDEO_MAX_LNCNT, 0x20C,},
|
||||
{P_ENCP_VIDEO_HAVON_BEGIN, 0x64,},
|
||||
{P_ENCP_VIDEO_HAVON_END, 0x243,},
|
||||
{P_ENCP_VIDEO_VAVON_BLINE, 0xEE,},
|
||||
{P_ENCP_VIDEO_VAVON_ELINE, 0x1FD,},
|
||||
{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
|
||||
{P_ENCP_VIDEO_HSO_END, 0x64,},
|
||||
{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
|
||||
{P_ENCP_VIDEO_VSO_END, 0x32,},
|
||||
{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
|
||||
{P_ENCP_VIDEO_VSO_ELINE, 0x7,},
|
||||
|
||||
{P_ENCP_VIDEO_EN, 1,},
|
||||
{P_ENCI_VIDEO_EN, 0,},
|
||||
{MREG_END_MARKER, 0}
|
||||
};
|
||||
|
||||
static const struct reg_s tvregs_480x800p_60hz[] = {
|
||||
{P_ENCP_VIDEO_EN, 0},
|
||||
{P_ENCI_VIDEO_EN, 0},
|
||||
@@ -1206,6 +1232,7 @@ static struct vic_tvregs_set tvregsTab[] = {
|
||||
{HDMI_800x480p60_5x3, tvregs_800x480p_60hz},
|
||||
{HDMI_640x480p60_4x3, tvregs_640x480p_60hz},
|
||||
{HDMI_480x320p60_4x3, tvregs_480x320p_60hz},
|
||||
{HDMI_480x272p60_4x3, tvregs_480x272p_60hz},
|
||||
{HDMI_480x800p60_4x3, tvregs_480x800p_60hz},
|
||||
};
|
||||
|
||||
|
||||
@@ -1766,6 +1766,22 @@ static void hdmi_tvenc_set(struct hdmitx_vidpara *param)
|
||||
SOF_LINES = 95;
|
||||
TOTAL_FRAMES = 4;
|
||||
break;
|
||||
case HDMI_480x272p60_4x3:
|
||||
INTERLACE_MODE = 0;
|
||||
PIXEL_REPEAT_VENC = 0;
|
||||
PIXEL_REPEAT_HDMI = 0;
|
||||
ACTIVE_PIXELS = (480*(1+PIXEL_REPEAT_HDMI));
|
||||
ACTIVE_LINES = (272/(1+INTERLACE_MODE));
|
||||
LINES_F0 = 263;
|
||||
LINES_F1 = 263;
|
||||
FRONT_PORCH = 120;
|
||||
HSYNC_PIXELS = 100;
|
||||
BACK_PORCH = 100;
|
||||
EOF_LINES = 8;
|
||||
VSYNC_LINES = 4;
|
||||
SOF_LINES = 119;
|
||||
TOTAL_FRAMES = 4;
|
||||
break;
|
||||
case HDMI_480x800p60_4x3:
|
||||
INTERLACE_MODE = 0U;
|
||||
PIXEL_REPEAT_VENC = 0;
|
||||
|
||||
@@ -829,6 +829,7 @@ static struct hw_enc_clk_val_group setting_enc_clk_val_24[] = {
|
||||
/* actual hpll : 2014000 */
|
||||
2000000, 4, 2, 2, VID_PLL_DIV_5, 1, 1, 1, -1},
|
||||
{{HDMI_480x320p60_4x3,
|
||||
HDMI_480x272p60_4x3,
|
||||
HDMI_VIC_END},
|
||||
/* actual hpll : 2016000 */
|
||||
2000000, 4, 2, 2, VID_PLL_DIV_5, 1, 1, 1, -1},
|
||||
|
||||
@@ -161,6 +161,7 @@ enum hdmi_vic {
|
||||
HDMI_800x600p60_4x3,
|
||||
HDMI_800x480p60_5x3,
|
||||
HDMI_480x320p60_4x3,
|
||||
HDMI_480x272p60_4x3,
|
||||
HDMI_480x800p60_4x3,
|
||||
HDMI_CUSTOMBUILT,
|
||||
|
||||
|
||||
Reference in New Issue
Block a user