<?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 iMX8MM MIPI-CSI clock properties setting in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/iMX8MM-MIPI-CSI-clock-properties-setting/m-p/1152056#M161658</link>
    <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;I'm integrating an existing driver for Sony IMX296 sensor using the patch from here : &lt;A title="https://patchwork.kernel.org/cover/11219369/" href="https://patchwork.kernel.org/cover/11219369/" target="_blank" rel="noopener"&gt;https://patchwork.kernel.org/cover/11219369/&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the device-tree, I modified the following OV5640 sensor node :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;       ov5640_mipi: ov5640_mipi@3c {
                compatible = "ovti,ov5640_mipi";
                reg = &amp;lt;0x3c&amp;gt;;
                status = "okay";
                pinctrl-names = "default";
                pinctrl-0 = &amp;lt;&amp;amp;pinctrl_csi_pwn&amp;gt;, &amp;lt;&amp;amp;pinctrl_csi_rst&amp;gt;;
                clocks = &amp;lt;&amp;amp;clk IMX8MM_CLK_CLKO1&amp;gt;;
                clock-names = "csi_mclk";
                assigned-clocks = &amp;lt;&amp;amp;clk IMX8MM_CLK_CLKO1&amp;gt;;
                assigned-clock-parents = &amp;lt;&amp;amp;clk IMX8MM_CLK_24M&amp;gt;;
                assigned-clock-rates = &amp;lt;24000000&amp;gt;;
                csi_id = &amp;lt;0&amp;gt;;
                pwn-gpios = &amp;lt;&amp;amp;gpio1 7 GPIO_ACTIVE_HIGH&amp;gt;;
                mclk = &amp;lt;24000000&amp;gt;;
                mclk_source = &amp;lt;0&amp;gt;;
                port {
                        ov5640_mipi1_ep: endpoint {
                                remote-endpoint = &amp;lt;&amp;amp;mipi1_sensor_ep&amp;gt;;
                        };
                };
        };&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;to&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;       imx296_mipi: imx296_mipi@1a {
                compatible = "sony,imx296_mipi";
                reg = &amp;lt;0x1a&amp;gt;;
                status = "okay";

                pinctrl-names = "default";
                pinctrl-0 = &amp;lt;&amp;amp;pinctrl_csi_pwn&amp;gt;, &amp;lt;&amp;amp;pinctrl_csi_rst&amp;gt;;

                clocks = &amp;lt;&amp;amp;clk IMX8MM_CLK_CSI1_CORE&amp;gt;;
                clock-names = "csi_mclk";
                clock-frequency = &amp;lt;37125000&amp;gt;;
                assigned-clocks = &amp;lt;&amp;amp;clk IMX8MM_CLK_CSI1_CORE&amp;gt;;
                assigned-clock-parents = &amp;lt;&amp;amp;clk IMX8MM_SYS_PLL1_266M&amp;gt;;
                assigned-clock-rates = &amp;lt;37125000&amp;gt;;

                mclk = &amp;lt;37125000&amp;gt;;
                mclk_source = &amp;lt;0&amp;gt;;

                csi_id = &amp;lt;0&amp;gt;;

                rst-gpios = &amp;lt;&amp;amp;gpio1 7 GPIO_ACTIVE_LOW&amp;gt;;

                //vddo-supply = &amp;lt;&amp;amp;reg_camera_board_1p8v&amp;gt;;
                //vdda-supply = &amp;lt;&amp;amp;reg_camera_board_3p3v&amp;gt;;
                //vddd-supply = &amp;lt;&amp;amp;reg_camera_board_1p2v&amp;gt;;

                port {
                        imx296_mipi1_ep: endpoint {
                                remote-endpoint = &amp;lt;&amp;amp;mipi1_sensor_ep&amp;gt;;
                        };
                };
        };&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Among the clock properties, I could see that clock-name and clock-frequency are used in the sensor driver's source code. However, it is not quite clear for me the relationship btw &lt;EM&gt;&lt;STRONG&gt;clocks&lt;/STRONG&gt;&lt;/EM&gt;, &lt;EM&gt;&lt;STRONG&gt;assigned-clocks&lt;/STRONG&gt;&lt;/EM&gt;, &lt;EM&gt;&lt;STRONG&gt;assigned-clock-parents&lt;/STRONG&gt;&lt;/EM&gt;, &lt;STRONG&gt;&lt;EM&gt;assigned-clock-rates&lt;/EM&gt;&lt;/STRONG&gt;. I would really appreciate if anyone can explain me more, please ?&lt;/P&gt;&lt;P&gt;Also, as the IMX296 sensor requires 37125000 Hz as clock source,&amp;nbsp; I modified assigned-clock-parents from&amp;nbsp;&amp;lt;&amp;amp;clk IMX8MM_CLK_24M&amp;gt; to &amp;lt;&amp;amp;clk IMX8MM_SYS_PLL1_266M&amp;gt; since from this &lt;A href="https://community.nxp.com/t5/i-MX-Processors/imx8m-mini-change-mipi-csi-mclk-frequency/m-p/1095433" target="_self"&gt;thread&lt;/A&gt;, it is said that "&lt;EM&gt;using IMX8MM_CLK_24M [24MHz] as parent seems it is not possible to derive from it 50MHz, assigned-clock-rates = &amp;lt;0&amp;gt;, &amp;lt;50000000&amp;gt;;&lt;/EM&gt;"&lt;/P&gt;&lt;P&gt;Moreover, I modified clocks and assigned-clocks to &lt;STRONG&gt;IMX8MM_CLK_CSI1_CORE&lt;/STRONG&gt; (instead of &lt;STRONG&gt;IMX8MM_CLK_CLKO1&lt;/STRONG&gt; or &lt;STRONG&gt;IMX8MM_CLK_CLKO1_DIV&lt;/STRONG&gt;) and I think more logical for CSI interface, do you agree ?&lt;/P&gt;&lt;P&gt;Thanks in advance for your opinion and best regards,&lt;/P&gt;&lt;P&gt;Khang&lt;/P&gt;</description>
    <pubDate>Fri, 11 Sep 2020 10:38:13 GMT</pubDate>
    <dc:creator>khang_letruong</dc:creator>
    <dc:date>2020-09-11T10:38:13Z</dc:date>
    <item>
      <title>iMX8MM MIPI-CSI clock properties setting</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX8MM-MIPI-CSI-clock-properties-setting/m-p/1152056#M161658</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;I'm integrating an existing driver for Sony IMX296 sensor using the patch from here : &lt;A title="https://patchwork.kernel.org/cover/11219369/" href="https://patchwork.kernel.org/cover/11219369/" target="_blank" rel="noopener"&gt;https://patchwork.kernel.org/cover/11219369/&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the device-tree, I modified the following OV5640 sensor node :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;       ov5640_mipi: ov5640_mipi@3c {
                compatible = "ovti,ov5640_mipi";
                reg = &amp;lt;0x3c&amp;gt;;
                status = "okay";
                pinctrl-names = "default";
                pinctrl-0 = &amp;lt;&amp;amp;pinctrl_csi_pwn&amp;gt;, &amp;lt;&amp;amp;pinctrl_csi_rst&amp;gt;;
                clocks = &amp;lt;&amp;amp;clk IMX8MM_CLK_CLKO1&amp;gt;;
                clock-names = "csi_mclk";
                assigned-clocks = &amp;lt;&amp;amp;clk IMX8MM_CLK_CLKO1&amp;gt;;
                assigned-clock-parents = &amp;lt;&amp;amp;clk IMX8MM_CLK_24M&amp;gt;;
                assigned-clock-rates = &amp;lt;24000000&amp;gt;;
                csi_id = &amp;lt;0&amp;gt;;
                pwn-gpios = &amp;lt;&amp;amp;gpio1 7 GPIO_ACTIVE_HIGH&amp;gt;;
                mclk = &amp;lt;24000000&amp;gt;;
                mclk_source = &amp;lt;0&amp;gt;;
                port {
                        ov5640_mipi1_ep: endpoint {
                                remote-endpoint = &amp;lt;&amp;amp;mipi1_sensor_ep&amp;gt;;
                        };
                };
        };&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;to&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;       imx296_mipi: imx296_mipi@1a {
                compatible = "sony,imx296_mipi";
                reg = &amp;lt;0x1a&amp;gt;;
                status = "okay";

                pinctrl-names = "default";
                pinctrl-0 = &amp;lt;&amp;amp;pinctrl_csi_pwn&amp;gt;, &amp;lt;&amp;amp;pinctrl_csi_rst&amp;gt;;

                clocks = &amp;lt;&amp;amp;clk IMX8MM_CLK_CSI1_CORE&amp;gt;;
                clock-names = "csi_mclk";
                clock-frequency = &amp;lt;37125000&amp;gt;;
                assigned-clocks = &amp;lt;&amp;amp;clk IMX8MM_CLK_CSI1_CORE&amp;gt;;
                assigned-clock-parents = &amp;lt;&amp;amp;clk IMX8MM_SYS_PLL1_266M&amp;gt;;
                assigned-clock-rates = &amp;lt;37125000&amp;gt;;

                mclk = &amp;lt;37125000&amp;gt;;
                mclk_source = &amp;lt;0&amp;gt;;

                csi_id = &amp;lt;0&amp;gt;;

                rst-gpios = &amp;lt;&amp;amp;gpio1 7 GPIO_ACTIVE_LOW&amp;gt;;

                //vddo-supply = &amp;lt;&amp;amp;reg_camera_board_1p8v&amp;gt;;
                //vdda-supply = &amp;lt;&amp;amp;reg_camera_board_3p3v&amp;gt;;
                //vddd-supply = &amp;lt;&amp;amp;reg_camera_board_1p2v&amp;gt;;

                port {
                        imx296_mipi1_ep: endpoint {
                                remote-endpoint = &amp;lt;&amp;amp;mipi1_sensor_ep&amp;gt;;
                        };
                };
        };&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Among the clock properties, I could see that clock-name and clock-frequency are used in the sensor driver's source code. However, it is not quite clear for me the relationship btw &lt;EM&gt;&lt;STRONG&gt;clocks&lt;/STRONG&gt;&lt;/EM&gt;, &lt;EM&gt;&lt;STRONG&gt;assigned-clocks&lt;/STRONG&gt;&lt;/EM&gt;, &lt;EM&gt;&lt;STRONG&gt;assigned-clock-parents&lt;/STRONG&gt;&lt;/EM&gt;, &lt;STRONG&gt;&lt;EM&gt;assigned-clock-rates&lt;/EM&gt;&lt;/STRONG&gt;. I would really appreciate if anyone can explain me more, please ?&lt;/P&gt;&lt;P&gt;Also, as the IMX296 sensor requires 37125000 Hz as clock source,&amp;nbsp; I modified assigned-clock-parents from&amp;nbsp;&amp;lt;&amp;amp;clk IMX8MM_CLK_24M&amp;gt; to &amp;lt;&amp;amp;clk IMX8MM_SYS_PLL1_266M&amp;gt; since from this &lt;A href="https://community.nxp.com/t5/i-MX-Processors/imx8m-mini-change-mipi-csi-mclk-frequency/m-p/1095433" target="_self"&gt;thread&lt;/A&gt;, it is said that "&lt;EM&gt;using IMX8MM_CLK_24M [24MHz] as parent seems it is not possible to derive from it 50MHz, assigned-clock-rates = &amp;lt;0&amp;gt;, &amp;lt;50000000&amp;gt;;&lt;/EM&gt;"&lt;/P&gt;&lt;P&gt;Moreover, I modified clocks and assigned-clocks to &lt;STRONG&gt;IMX8MM_CLK_CSI1_CORE&lt;/STRONG&gt; (instead of &lt;STRONG&gt;IMX8MM_CLK_CLKO1&lt;/STRONG&gt; or &lt;STRONG&gt;IMX8MM_CLK_CLKO1_DIV&lt;/STRONG&gt;) and I think more logical for CSI interface, do you agree ?&lt;/P&gt;&lt;P&gt;Thanks in advance for your opinion and best regards,&lt;/P&gt;&lt;P&gt;Khang&lt;/P&gt;</description>
      <pubDate>Fri, 11 Sep 2020 10:38:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX8MM-MIPI-CSI-clock-properties-setting/m-p/1152056#M161658</guid>
      <dc:creator>khang_letruong</dc:creator>
      <dc:date>2020-09-11T10:38:13Z</dc:date>
    </item>
  </channel>
</rss>

