Re: [PATCH] ASoC: cs42888: Add codec driver support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Feb 24, 2014, at 10:06 AM, Nicolin Chen <Guangyu.Chen@xxxxxxxxxxxxx> wrote:

> On Mon, Feb 24, 2014 at 03:52:24PM +0000, Austin, Brian wrote:
>>>> +	if (!IS_ERR(cs42888->clk))
>>>> +		clk_disable_unprepare(cs42888->clk);
>>> 
>>> Does the device work without MCLK?
>> Yes, MCLK is required. If you can’t get the clock you should error out.
> 
> Wait...Regarding this clock part, I just forgot the reason I put the code:
> 
> 385         cs42888->clk = devm_clk_get(&i2c->dev, "mclk");
> 386         if (IS_ERR(cs42888->clk))
> 387                 dev_warn(&i2c->dev, "failed to get the clock: %ld\n",
> 388                                 PTR_ERR(cs42888->clk));
> 
> was because the MCLK might be provided from SoC (DAI master) so it could
> be totally controlled by CPU DAI driver, ESAI for example has its own
> dividers to derive the HCKT clock (MCLK for Tx) from ahb clock in SoC
> clock tree, in which case we might not easily pass a valid clock phandle
> via DT. (RFC to this thought.)
OK, It’s an external MCLK source, so why not just handle that in the machine driver? 
Usually you would want the clock enabled/disabled in the machine driver so if you don’t get it, you can bail out there. 
At least that is how I do our MCLK’s. Since you are only using the freq of the clock to derive modes, just put the clock initialization outside and just pass in the freq like you do in set_sysclk

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail


[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux