Skip to content

Commit 46bc23d

Browse files
aknautiyaljnikula
authored andcommitted
drm/i915/dg2: Add HDMI pixel clock frequencies 267.30 and 319.89 MHz
Add snps phy table values for HDMI pixel clocks 267.30 MHz and 319.89 MHz. Values are based on the Bspec algorithm for PLL programming for HDMI. Cc: [email protected] Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/8008 Signed-off-by: Ankit Nautiyal <[email protected]> Reviewed-by: Uma Shankar <[email protected]> Signed-off-by: Uma Shankar <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] (cherry picked from commit d46746b) Signed-off-by: Jani Nikula <[email protected]>
1 parent 71c6021 commit 46bc23d

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

drivers/gpu/drm/i915/display/intel_snps_phy.c

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1419,6 +1419,36 @@ static const struct intel_mpllb_state dg2_hdmi_262750 = {
14191419
REG_FIELD_PREP(SNPS_PHY_MPLLB_SSC_UP_SPREAD, 1),
14201420
};
14211421

1422+
static const struct intel_mpllb_state dg2_hdmi_267300 = {
1423+
.clock = 267300,
1424+
.ref_control =
1425+
REG_FIELD_PREP(SNPS_PHY_REF_CONTROL_REF_RANGE, 3),
1426+
.mpllb_cp =
1427+
REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_INT, 7) |
1428+
REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_PROP, 14) |
1429+
REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_INT_GS, 64) |
1430+
REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_PROP_GS, 124),
1431+
.mpllb_div =
1432+
REG_FIELD_PREP(SNPS_PHY_MPLLB_DIV5_CLK_EN, 1) |
1433+
REG_FIELD_PREP(SNPS_PHY_MPLLB_TX_CLK_DIV, 1) |
1434+
REG_FIELD_PREP(SNPS_PHY_MPLLB_PMIX_EN, 1) |
1435+
REG_FIELD_PREP(SNPS_PHY_MPLLB_V2I, 2) |
1436+
REG_FIELD_PREP(SNPS_PHY_MPLLB_FREQ_VCO, 3),
1437+
.mpllb_div2 =
1438+
REG_FIELD_PREP(SNPS_PHY_MPLLB_REF_CLK_DIV, 1) |
1439+
REG_FIELD_PREP(SNPS_PHY_MPLLB_MULTIPLIER, 74) |
1440+
REG_FIELD_PREP(SNPS_PHY_MPLLB_HDMI_DIV, 1),
1441+
.mpllb_fracn1 =
1442+
REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_CGG_UPDATE_EN, 1) |
1443+
REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_EN, 1) |
1444+
REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_DEN, 65535),
1445+
.mpllb_fracn2 =
1446+
REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_QUOT, 30146) |
1447+
REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_REM, 36699),
1448+
.mpllb_sscen =
1449+
REG_FIELD_PREP(SNPS_PHY_MPLLB_SSC_UP_SPREAD, 1),
1450+
};
1451+
14221452
static const struct intel_mpllb_state dg2_hdmi_268500 = {
14231453
.clock = 268500,
14241454
.ref_control =
@@ -1509,6 +1539,36 @@ static const struct intel_mpllb_state dg2_hdmi_241500 = {
15091539
REG_FIELD_PREP(SNPS_PHY_MPLLB_SSC_UP_SPREAD, 1),
15101540
};
15111541

1542+
static const struct intel_mpllb_state dg2_hdmi_319890 = {
1543+
.clock = 319890,
1544+
.ref_control =
1545+
REG_FIELD_PREP(SNPS_PHY_REF_CONTROL_REF_RANGE, 3),
1546+
.mpllb_cp =
1547+
REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_INT, 6) |
1548+
REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_PROP, 14) |
1549+
REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_INT_GS, 64) |
1550+
REG_FIELD_PREP(SNPS_PHY_MPLLB_CP_PROP_GS, 124),
1551+
.mpllb_div =
1552+
REG_FIELD_PREP(SNPS_PHY_MPLLB_DIV5_CLK_EN, 1) |
1553+
REG_FIELD_PREP(SNPS_PHY_MPLLB_TX_CLK_DIV, 1) |
1554+
REG_FIELD_PREP(SNPS_PHY_MPLLB_PMIX_EN, 1) |
1555+
REG_FIELD_PREP(SNPS_PHY_MPLLB_V2I, 2) |
1556+
REG_FIELD_PREP(SNPS_PHY_MPLLB_FREQ_VCO, 2),
1557+
.mpllb_div2 =
1558+
REG_FIELD_PREP(SNPS_PHY_MPLLB_REF_CLK_DIV, 1) |
1559+
REG_FIELD_PREP(SNPS_PHY_MPLLB_MULTIPLIER, 94) |
1560+
REG_FIELD_PREP(SNPS_PHY_MPLLB_HDMI_DIV, 1),
1561+
.mpllb_fracn1 =
1562+
REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_CGG_UPDATE_EN, 1) |
1563+
REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_EN, 1) |
1564+
REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_DEN, 65535),
1565+
.mpllb_fracn2 =
1566+
REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_QUOT, 64094) |
1567+
REG_FIELD_PREP(SNPS_PHY_MPLLB_FRACN_REM, 13631),
1568+
.mpllb_sscen =
1569+
REG_FIELD_PREP(SNPS_PHY_MPLLB_SSC_UP_SPREAD, 1),
1570+
};
1571+
15121572
static const struct intel_mpllb_state dg2_hdmi_497750 = {
15131573
.clock = 497750,
15141574
.ref_control =
@@ -1696,8 +1756,10 @@ static const struct intel_mpllb_state * const dg2_hdmi_tables[] = {
16961756
&dg2_hdmi_209800,
16971757
&dg2_hdmi_241500,
16981758
&dg2_hdmi_262750,
1759+
&dg2_hdmi_267300,
16991760
&dg2_hdmi_268500,
17001761
&dg2_hdmi_296703,
1762+
&dg2_hdmi_319890,
17011763
&dg2_hdmi_497750,
17021764
&dg2_hdmi_592000,
17031765
&dg2_hdmi_593407,

0 commit comments

Comments
 (0)