AnsweredAssumed Answered

imx6 solo平台,csi_mclk如何设置所需要的时钟频率?是否能找到能被44100整除的频率

Question asked by yonghe luo on Jan 24, 2018
Latest reply on Jan 24, 2018 by yonghe luo

Dear Sir,

       因为敝司的板子上需要一个mclk时钟供给音频音频,而这颗音频芯片需要能够被44100或48000整除的时钟,如:

       能被44.1K整除的:11.2896MHz, 16.9344MHz,22.5792MHz

       能被48K整除的:12.2880MHz, 18.4320MHz,24.5760MHz。

 

      当前,我们采用的是时钟引脚是:MX6QDL_PAD_GPIO_19__CCM_CLKO1

在设备树中配置如下:

      clocks = <&clks 201>;
      clock-names = "csi_mclk";
      mclk = <11289600>; /* default is 24000000 */
      mclk_source = <0>;

在代码中,使能这个时钟:

    cs4344_mclk = devm_clk_get(&pdev->dev, "csi_mclk");

    clk_prepare_enable(cs4344_mclk);

实际出来的时钟频率是:24MHz

在:Change freqency of mclk for ov5640_mipi with imx6dl  中说是可以改,但没看明白怎么改。

 

因此,我的问题是:

1)如何修改使用不同的时钟?

    imx_clk_set_parent(clk[IMX6QDL_CLK_CKO2_SEL], clk[IMX6QDL_CLK_OSC]);
    imx_clk_set_parent(clk[IMX6QDL_CLK_CKO], clk[IMX6QDL_CLK_CKO2]);

2)平台中是否有支持如下频率的时钟(只要找到其中一个即可),如:    

       能被44.1K整除的:11.2896MHz, 16.9344MHz,22.5792MHz

       能被48K整除的:12.2880MHz, 18.4320MHz,24.5760MHz。

3)在mach-imx6q.c中,找到:

      clk_set_parent(pll4_sel, lvds2_in);
      clk_set_rate(pll4_audio_div, 786432000);
     clk_set_rate(esai_extal, 24576000);

     不知道能否用这个时钟源?或者最好能与i2s的bclk共用一个时钟源?

 

  不知描述是否清楚。谢谢!

 

Yonghe.Luo

Outcomes