1. Main clk : 一般都是13M。
今天用示波器量了下音频Main clock时钟频率,很逗。开始量出来166Hz,后来觉得不对,把周期调小了下,才量出来12.99MHz。我说怎么可能这么低频率。
I2S总线的 PCLK 和 LRCLK 都是Main clk中分频出去的,频率才会低很多。如果Main clk只有166Hz, 还怎么分频。汗。。。还是挺幼稚呀。。
函数如下:
函数如下:
static int lm49350_set_mclk(int freq)
{
int err = 0;
struct clk* mclk_parent;
struct clk* mclk;
unsigned long rate = (unsigned long)freq;
mclk_parent = clk_get(NULL, "pll1_mclk");
if (IS_ERR(mclk_parent)) {
printk(KERN_ERR "[SND CODEC] Cannot get sensor input parent clock\n");
err = PTR_ERR(mclk_parent);
goto out;
}
mclk = clk_get(NULL, "clkout0_clk");
if (IS_ERR(mclk)) {
printk(KERN_ERR "[SND CODEC] Cannot get sensor input clock\n");