<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Custom HDMI Resolution on i.MX 8MP in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Custom-HDMI-Resolution-on-i-MX-8MP/m-p/2183577#M241290</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I'm working on a project using the Yocto Scarthgap release, and I'm trying to enable a custom HDMI resolution of &lt;STRONG&gt;3840x1080 @ 60Hz&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;The required pixel clock for this mode is &lt;STRONG&gt;266.64 MHz&lt;/STRONG&gt;. To support this, I have added the following entry to the samsung_phy_pll_cfg[] array in the drivers/phy/freescale/phy-fsl-samsung-hdmi.c file:&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;SPAN class=""&gt;C&lt;/SPAN&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;PRE&gt;{ 
    &lt;SPAN class=""&gt;// 3840x1080@60Hz (266.64 MHz)&lt;/SPAN&gt;
    &lt;SPAN class=""&gt;266640000&lt;/SPAN&gt;, {
        &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0xD1&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x6B&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x15&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x89&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x05&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x88&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x45&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;0x4F&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x30&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x33&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x65&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x30&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0xB8&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x24&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x80&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;0x6C&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0xF2&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x67&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x10&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x81&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x30&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x32&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;0x60&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x8F&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x08&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x80&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0xE0&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x83&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x0F&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x3E&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0xF8&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;,
    },
},&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;However, after applying this change and booting the system, I get no output on the display (a black screen). I suspect that these PHY PLL register values are incorrect for my hardware.&lt;/P&gt;&lt;P&gt;My main question is: &lt;STRONG&gt;Is there a PLL configuration tool available that can generate the correct register settings for the Samsung HDMI PHY for a given clock rate?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Please note that I cannot simply use the latest phy-fsl-samsung-hdmi.c driver from the mainline kernel, as it causes build errors within my current Yocto Scarthgap environment.&lt;/P&gt;&lt;P&gt;Any advice or suggestions would be greatly appreciated.&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;</description>
    <pubDate>Fri, 10 Oct 2025 06:12:19 GMT</pubDate>
    <dc:creator>masalcp</dc:creator>
    <dc:date>2025-10-10T06:12:19Z</dc:date>
    <item>
      <title>Custom HDMI Resolution on i.MX 8MP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Custom-HDMI-Resolution-on-i-MX-8MP/m-p/2179667#M241126</link>
      <description>&lt;P&gt;Hello everyone,&lt;BR /&gt;I want to display 3840x726@60 and 3840x1080@60 via HDMI, and it would be helpful if you could add the necessary HDMI PLL configuration to samsung_phy_pll_cfg[] in "drivers/phy/freescale/phy-fsl-samsung-hdmi.c".&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 03 Oct 2025 01:55:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Custom-HDMI-Resolution-on-i-MX-8MP/m-p/2179667#M241126</guid>
      <dc:creator>masalcp</dc:creator>
      <dc:date>2025-10-03T01:55:22Z</dc:date>
    </item>
    <item>
      <title>Re: Custom HDMI Resolution on i.MX 8MP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Custom-HDMI-Resolution-on-i-MX-8MP/m-p/2180612#M241163</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-huuid="18373906154512443152"&gt;To achieve 3840x726@60 and 3840x1080@60 via HDMI, r&lt;/SPAN&gt;&lt;SPAN data-huuid="18373906154512441845"&gt;he exact HDMI PLL configuration for the &lt;CODE class="mv6bHd"&gt;samsung_phy&lt;/CODE&gt; driver depends on your specific driver version, but you will need to adjust the Pixel Clock (PCLK), Dot Clock, or TMDS (Transition Minimized Differential Signaling) Clock to match the required data rate for the selected resolution and refresh rate.&lt;SPAN class="pjBG2e" data-cid="dbf10ddf-2ab5-4c6f-81b5-c592ffb0f5b7"&gt;&lt;SPAN class="UV3uM"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="WaaZC"&gt;
&lt;DIV class="RJPOee EIJn2" style="animation: none !important;"&gt;
&lt;DIV class="rPeykc" data-hveid="CAMQAQ" data-ved="2ahUKEwiysbiU4Y-QAxXnj-4BHf7xApAQo_EKegQIAxAB"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="WaaZC"&gt;
&lt;DIV class="RJPOee EIJn2" style="animation: none !important;"&gt;
&lt;DIV class="rPeykc pyPiTc" data-hveid="CAsQAQ" data-ved="2ahUKEwiysbiU4Y-QAxXnj-4BHf7xApAQo_EKegQICxAB"&gt;&lt;SPAN data-huuid="14917545189639169299"&gt;1. Determine the Required Bandwidth &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="WaaZC"&gt;
&lt;DIV class="RJPOee EIJn2" style="animation: none !important;"&gt;
&lt;DIV class="rPeykc uP58nb MNX06c" data-hveid="CAwQAQ" data-ved="2ahUKEwiysbiU4Y-QAxXnj-4BHf7xApAQo_EKegQIDBAB"&gt;&lt;SPAN data-huuid="14917545189639171537"&gt;&lt;SPAN aria-level="2"&gt;First, calculate the total pixel rate (or dot clock) for each resolution:&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="WaaZC"&gt;
&lt;DIV class="RJPOee EIJn2" style="animation: none !important;"&gt;
&lt;UL data-hveid="CBAQAQ" data-ved="2ahUKEwiysbiU4Y-QAxXnj-4BHf7xApAQm_YKegQIEBAB"&gt;
&lt;LI&gt;&lt;SPAN data-huuid="14917545189639168750"&gt;3840x726@60Hz&lt;STRONG&gt;:&lt;/STRONG&gt; &lt;/SPAN&gt;&lt;SPAN data-huuid="14917545189639171917"&gt;(3840 * 726 * 60) / 1,000,000 = ~167.96 MHz &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-huuid="14917545189639170059"&gt;3840x1080@60Hz&lt;STRONG&gt;:&lt;/STRONG&gt; &lt;/SPAN&gt;&lt;SPAN data-huuid="14917545189639169130"&gt;(3840 * 1080 * 60) / 1,000,000 = ~248.83 MHz &lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="WaaZC"&gt;
&lt;DIV class="RJPOee EIJn2" style="animation: none !important;"&gt;
&lt;DIV class="rPeykc uP58nb" data-hveid="CBcQAQ" data-ved="2ahUKEwiysbiU4Y-QAxXnj-4BHf7xApAQo_EKegQIFxAB"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="WaaZC"&gt;
&lt;DIV class="RJPOee EIJn2" style="animation: none !important;"&gt;
&lt;DIV class="rPeykc pyPiTc" data-hveid="CCQQAQ" data-ved="2ahUKEwiysbiU4Y-QAxXnj-4BHf7xApAQo_EKegQIJBAB"&gt;&lt;SPAN data-huuid="9448595434426010962"&gt;2. Find the &lt;CODE class="mv6bHd"&gt;samsung_phy_&lt;/CODE&gt; Driver Configuration&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="WaaZC"&gt;
&lt;DIV class="RJPOee EIJn2" style="animation: none !important;"&gt;
&lt;UL data-hveid="CC4QAQ" data-ved="2ahUKEwiysbiU4Y-QAxXnj-4BHf7xApAQm_YKegQILhAB"&gt;
&lt;LI&gt;
&lt;DIV class="zMgcWd dSKvsb" data-il=""&gt;
&lt;DIV data-crb-p=""&gt;
&lt;DIV class="xFTqob"&gt;
&lt;DIV class="Gur8Ad" style="display: inline;"&gt;&lt;SPAN data-huuid="9448595434426008551"&gt;Locate the &lt;CODE class="mv6bHd"&gt;samsung_phy_&lt;/CODE&gt; driver source code: &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="vM0jzc" style="display: inline;"&gt;&lt;SPAN data-huuid="9448595434426008888"&gt;You will need to find the relevant driver files (e.g., &lt;CODE class="mv6bHd"&gt;drivers/phy/samsung/&lt;/CODE&gt; in the Linux kernel) to see how clocking and PLLs are controlled. &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="zMgcWd dSKvsb" data-il=""&gt;
&lt;DIV data-crb-p=""&gt;
&lt;DIV class="xFTqob"&gt;
&lt;DIV class="Gur8Ad" style="display: inline;"&gt;Examine existing PLL configurations:&lt;/DIV&gt;
&lt;DIV class="vM0jzc" style="display: inline;"&gt;&lt;SPAN data-huuid="9448595434426009899"&gt;Look for functions related to clock generation or PLL setup within the driver. &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="WaaZC"&gt;
&lt;DIV class="RJPOee EIJn2" style="animation: none !important;"&gt;
&lt;DIV class="rPeykc uP58nb" data-hveid="CDUQAQ" data-ved="2ahUKEwiysbiU4Y-QAxXnj-4BHf7xApAQo_EKegQINRAB"&gt;&lt;SPAN data-huuid="1286816788265072477"&gt;&lt;SPAN aria-level="2"&gt;3. Adjust the PLL Configuration&lt;/SPAN&gt;&lt;SPAN class="pjBG2e" data-cid="fde356fa-f8ce-4f83-b5d3-6008d14b91fc"&gt;&lt;SPAN class="UV3uM"&gt;&amp;nbsp; and set the dtb&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="WaaZC"&gt;
&lt;DIV class="RJPOee EIJn2" style="animation: none !important;"&gt;
&lt;DIV class="rPeykc uP58nb" data-hveid="CDUQAQ" data-ved="2ahUKEwiysbiU4Y-QAxXnj-4BHf7xApAQo_EKegQINRAB"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="WaaZC"&gt;
&lt;DIV class="RJPOee EIJn2" style="animation: none !important;"&gt;
&lt;UL data-hveid="CDgQAQ" data-ved="2ahUKEwiysbiU4Y-QAxXnj-4BHf7xApAQm_YKegQIOBAB"&gt;
&lt;LI&gt;&lt;SPAN data-huuid="1286816788265073698"&gt;You will need to find the appropriate registers within the &lt;CODE class="mv6bHd"&gt;samsung_phy_&lt;/CODE&gt; driver that control the PLL (Phase-Locked Loop) or Clock Controller. &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-huuid="1286816788265074512"&gt;Set the PLL to generate the correct PCLK: &lt;/SPAN&gt;&lt;SPAN data-huuid="1286816788265070823"&gt;based on your desired resolution&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-huuid="1286816788265070823"&gt;Regards&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 06 Oct 2025 14:17:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Custom-HDMI-Resolution-on-i-MX-8MP/m-p/2180612#M241163</guid>
      <dc:creator>Bio_TICFSL</dc:creator>
      <dc:date>2025-10-06T14:17:20Z</dc:date>
    </item>
    <item>
      <title>Re: Custom HDMI Resolution on i.MX 8MP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Custom-HDMI-Resolution-on-i-MX-8MP/m-p/2183577#M241290</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I'm working on a project using the Yocto Scarthgap release, and I'm trying to enable a custom HDMI resolution of &lt;STRONG&gt;3840x1080 @ 60Hz&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;The required pixel clock for this mode is &lt;STRONG&gt;266.64 MHz&lt;/STRONG&gt;. To support this, I have added the following entry to the samsung_phy_pll_cfg[] array in the drivers/phy/freescale/phy-fsl-samsung-hdmi.c file:&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;SPAN class=""&gt;C&lt;/SPAN&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;PRE&gt;{ 
    &lt;SPAN class=""&gt;// 3840x1080@60Hz (266.64 MHz)&lt;/SPAN&gt;
    &lt;SPAN class=""&gt;266640000&lt;/SPAN&gt;, {
        &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0xD1&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x6B&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x15&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x89&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x05&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x88&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x45&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;0x4F&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x30&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x33&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x65&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x30&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0xB8&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x24&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x80&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;0x6C&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0xF2&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x67&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x10&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x81&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x30&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x32&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;0x60&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x8F&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x08&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x80&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0xE0&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x83&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x0F&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x3E&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0xF8&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;, &lt;SPAN class=""&gt;0x00&lt;/SPAN&gt;,
    },
},&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;However, after applying this change and booting the system, I get no output on the display (a black screen). I suspect that these PHY PLL register values are incorrect for my hardware.&lt;/P&gt;&lt;P&gt;My main question is: &lt;STRONG&gt;Is there a PLL configuration tool available that can generate the correct register settings for the Samsung HDMI PHY for a given clock rate?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Please note that I cannot simply use the latest phy-fsl-samsung-hdmi.c driver from the mainline kernel, as it causes build errors within my current Yocto Scarthgap environment.&lt;/P&gt;&lt;P&gt;Any advice or suggestions would be greatly appreciated.&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Fri, 10 Oct 2025 06:12:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Custom-HDMI-Resolution-on-i-MX-8MP/m-p/2183577#M241290</guid>
      <dc:creator>masalcp</dc:creator>
      <dc:date>2025-10-10T06:12:19Z</dc:date>
    </item>
    <item>
      <title>Re: Custom HDMI Resolution on i.MX 8MP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Custom-HDMI-Resolution-on-i-MX-8MP/m-p/2183952#M241304</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;DIV class="WaaZC"&gt;
&lt;DIV class="RJPOee EIJn2" style="animation: none !important;"&gt;
&lt;DIV class="rPeykc" data-hveid="CAQQAQ" data-ved="2ahUKEwie_7vV85mQAxX6nu4BHUnYKH4Qo_EKegQIBBAB"&gt;&lt;SPAN data-huuid="5492386072387260512"&gt;The PLL is crucial for generating the necessary clock frequencies for the HDMI serializer, which serializes parallel data into a high-speed serial stream for HDMI output. &lt;/SPAN&gt;&lt;SPAN data-huuid="5492386072387261635"&gt;In &lt;CODE class="mv6bHd"&gt;phy-fsl-samsung-hdmi.c&lt;/CODE&gt;, the PLL is configured with parameters (often stored in a Look-Up Table or LUT) to match the specific pixel clock required by the display, as seen in discussions about adding new modes and adjusting PLL settings for different resolutions like&lt;/SPAN&gt;
&lt;DIV class="CM8kHf j86kh" data-hveid="CAkQAQ"&gt;
&lt;DIV data-expression="2560 \times 1440"&gt;
&lt;DIV style="position: relative; direction: ltr; display: inline-flex; max-width: 100%; overflow-x: auto; vertical-align: -0.25em;" tabindex="-1" data-xpm-copy-root=""&gt;
&lt;DIV id="tinyMceEditorBio_TICFSL_0" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style="display: block; inset: 0; opacity: 0.001; overflow: hidden; position: absolute; user-select: none;"&gt;2560×14402560 cross 1440&lt;/DIV&gt;
2560×1440&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;SPAN data-huuid="5492386072387261635"&gt;and &lt;/SPAN&gt;
&lt;DIV class="CM8kHf j86kh" data-hveid="CAkQAg"&gt;
&lt;DIV data-expression="1920 \times 1200"&gt;
&lt;DIV style="position: relative; direction: ltr; display: inline-flex; max-width: 100%; overflow-x: auto; vertical-align: -0.25em;" tabindex="-1" data-xpm-copy-root=""&gt;
&lt;DIV id="tinyMceEditorBio_TICFSL_1" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style="display: block; inset: 0; opacity: 0.001; overflow: hidden; position: absolute; user-select: none;"&gt;1920×12001920 cross 1200&lt;/DIV&gt;
1920×1200&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;SPAN data-huuid="5492386072387261635"&gt;&lt;SPAN class="M5tQyf"&gt;.&lt;/SPAN&gt;&lt;SPAN class="pjBG2e" data-cid="9716b697-5402-4600-acb7-3eea484aa7b7"&gt;&lt;SPAN class="UV3uM"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class="NPrrbc" data-cid="9716b697-5402-4600-acb7-3eea484aa7b7" data-uuids="5492386072387263485,5492386072387260512,5492386072387261635"&gt;
&lt;DIV class="BMebGe btku5b LwdV0e FR7ZSc OJeuxf" tabindex="0" role="button" aria-label="Ver vínculos relacionados" data-hveid="CAkQAw" data-ved="2ahUKEwie_7vV85mQAxX6nu4BHUnYKH4Q3fYKegQICRAD"&gt;
&lt;DIV class="niO4u"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV id="9716b697-5402-4600-acb7-3eea484aa7b7" style="display: none;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="display: none;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV style="display: none;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="display: none;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="display: none;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="display: none;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV id="_ZyDpaN6vDfq9ur8PybCj8Qc_33" style="display: none;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="WaaZC"&gt;
&lt;DIV class="RJPOee EIJn2" style="animation: none !important;"&gt;
&lt;DIV class="rPeykc uP58nb rWIipd" data-hveid="CBIQAQ" data-ved="2ahUKEwie_7vV85mQAxX6nu4BHUnYKH4Qo_EKegQIEhAB"&gt;&lt;SPAN data-huuid="6644578505966019247"&gt;How the PLL is used: &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="WaaZC"&gt;
&lt;DIV class="RJPOee EIJn2" style="animation: none !important;"&gt;
&lt;UL data-hveid="CCcQAQ" data-ved="2ahUKEwie_7vV85mQAxX6nu4BHUnYKH4Qm_YKegQIJxAB"&gt;
&lt;LI&gt;
&lt;DIV class="zMgcWd dSKvsb" data-il=""&gt;
&lt;DIV data-crb-p=""&gt;
&lt;DIV class="xFTqob"&gt;
&lt;DIV class="Gur8Ad" style="display: inline;"&gt;&lt;SPAN data-huuid="6644578505966019104"&gt;&lt;STRONG&gt;Clock generation:&lt;/STRONG&gt; &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="vM0jzc" style="display: inline;"&gt;&lt;SPAN data-huuid="6644578505966021787"&gt;The PLL takes reference clocks (like APB and reference clocks) and generates the precise clock frequencies needed for the HDMI serializer to operate correctly.&lt;SPAN class="pjBG2e" data-cid="f980b1f7-7985-4d1c-ae2d-0759584c0028"&gt;&lt;SPAN class="UV3uM"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class="NPrrbc" data-cid="f980b1f7-7985-4d1c-ae2d-0759584c0028" data-uuids="6644578505966019104,6644578505966021787"&gt;
&lt;DIV class="BMebGe btku5b LwdV0e FR7ZSc OJeuxf" tabindex="0" role="button" aria-label="Ver vínculos relacionados" data-hveid="CBwQAQ" data-ved="2ahUKEwie_7vV85mQAxX6nu4BHUnYKH4Q3fYKegQIHBAB"&gt;
&lt;DIV class="niO4u"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV id="f980b1f7-7985-4d1c-ae2d-0759584c0028" style="display: none;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="display: none;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="zMgcWd dSKvsb" data-il=""&gt;
&lt;DIV data-crb-p=""&gt;
&lt;DIV class="xFTqob"&gt;
&lt;DIV class="Gur8Ad" style="display: inline;"&gt;&lt;SPAN data-huuid="6644578505966018961"&gt;&lt;STRONG&gt;Configuration for different modes:&lt;/STRONG&gt; &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="vM0jzc" style="display: inline;"&gt;&lt;SPAN data-huuid="6644578505966021644"&gt;To support various video modes, the driver needs to configure the PLL with specific parameters for each supported pixel clock frequency. &lt;/SPAN&gt;&lt;SPAN data-huuid="6644578505966020231"&gt;This is often handled by a Look-Up Table (LUT) containing the necessary settings.&lt;SPAN class="pjBG2e" data-cid="4785b785-9fae-445e-bdef-4acaba7cccd2"&gt;&lt;SPAN class="UV3uM"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class="NPrrbc" data-cid="4785b785-9fae-445e-bdef-4acaba7cccd2" data-uuids="6644578505966018961,6644578505966021644,6644578505966020231"&gt;
&lt;DIV class="BMebGe btku5b LwdV0e FR7ZSc OJeuxf" tabindex="0" role="button" aria-label="Ver vínculos relacionados" data-hveid="CCEQAQ" data-ved="2ahUKEwie_7vV85mQAxX6nu4BHUnYKH4Q3fYKegQIIRAB"&gt;
&lt;DIV class="niO4u"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV id="4785b785-9fae-445e-bdef-4acaba7cccd2" style="display: none;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="display: none;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="zMgcWd dSKvsb" data-il=""&gt;
&lt;DIV data-crb-p=""&gt;
&lt;DIV class="xFTqob"&gt;
&lt;DIV class="Gur8Ad" style="display: inline;"&gt;&lt;SPAN data-huuid="6644578505966021501"&gt;&lt;STRONG&gt;Driver and hardware interaction:&lt;/STRONG&gt; &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="vM0jzc" style="display: inline;"&gt;&lt;SPAN data-huuid="6644578505966020088"&gt;The &lt;CODE class="mv6bHd"&gt;phy-fsl-samsung-hdmi.c&lt;/CODE&gt; file contains the code that configures the hardware PLL, which is a part of the Samsung HDMI PHY, to meet the required timing and clocking specifications for the display to function.&lt;SPAN class="pjBG2e" data-cid="aed9105b-4628-4749-8f80-e8d7c343bd47"&gt;&lt;SPAN class="UV3uM"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class="NPrrbc" data-cid="aed9105b-4628-4749-8f80-e8d7c343bd47" data-uuids="6644578505966021501,6644578505966020088"&gt;
&lt;DIV class="BMebGe btku5b LwdV0e FR7ZSc OJeuxf" tabindex="0" role="button" aria-label="Ver vínculos relacionados" data-hveid="CCMQAQ" data-ved="2ahUKEwie_7vV85mQAxX6nu4BHUnYKH4Q3fYKegQIIxAB"&gt;
&lt;DIV class="niO4u"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV id="aed9105b-4628-4749-8f80-e8d7c343bd47" style="display: none;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="display: none;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class="zMgcWd dSKvsb" data-il=""&gt;
&lt;DIV data-crb-p=""&gt;
&lt;DIV class="xFTqob"&gt;
&lt;DIV class="Gur8Ad" style="display: inline;"&gt;&lt;SPAN data-huuid="6644578505966021358"&gt;&lt;STRONG&gt;Driver development:&lt;/STRONG&gt; &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="vM0jzc" style="display: inline;"&gt;&lt;SPAN data-huuid="6644578505966019945"&gt;There are ongoing efforts to extend the driver's capabilities by adding support for more modes and fine-tuning the PLL settings, as shown by recent patches adding new LUT entries and adjusting PLL lock detection mechanisms&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="vM0jzc" style="display: inline;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="vM0jzc" style="display: inline;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="vM0jzc" style="display: inline;"&gt;&lt;SPAN data-huuid="6644578505966019945"&gt;Regards&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 10 Oct 2025 15:06:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Custom-HDMI-Resolution-on-i-MX-8MP/m-p/2183952#M241304</guid>
      <dc:creator>Bio_TICFSL</dc:creator>
      <dc:date>2025-10-10T15:06:05Z</dc:date>
    </item>
    <item>
      <title>Re: Custom HDMI Resolution on i.MX 8MP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Custom-HDMI-Resolution-on-i-MX-8MP/m-p/2191072#M241588</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I referred to &lt;A href="https://codeberg.org/fschrempf/samsung-hdmi-phy-pll-calculator" target="_self"&gt;samsung-hdmi-phy-pll-calculator&lt;/A&gt;&amp;nbsp;and the phy-fsl-samsung-hdmi.c&amp;nbsp;file from lf-6.22.y, and added a new entry to the static const struct phy_config phy_pll_cfg[] array accordingly.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;As a result, the display output is now working correctly.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Oct 2025 02:06:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Custom-HDMI-Resolution-on-i-MX-8MP/m-p/2191072#M241588</guid>
      <dc:creator>masalcp</dc:creator>
      <dc:date>2025-10-23T02:06:59Z</dc:date>
    </item>
  </channel>
</rss>

