I spent some time implementing refclk in my platform driver, but then I found that sound/soc/ralink/ralink-i2s.c
seems to have all that done already. So it seems like my ultimate solution is just to comment out everything having to do with clocks and hardcode the expected 12 MHz frequency.
Posts made by wilkinsw
-
RE: DTS fixed-clock and devm_clk_get
-
RE: DTS fixed-clock and devm_clk_get
Looks like the fixed-clock driver is provided by CONFIG_COMMON_CLK which isn't available in the mt76x8 config. I'll try to figure out another solution.
-
DTS fixed-clock and devm_clk_get
I am working on getting an SGTL5000 codec working with an Omega2s. I have the driver compiling and inserted into the kernel but I can't get
devm_clk_get
to find the clocks. Here's the particular block from sgtl5000.csgtl5000->mclk = devm_clk_get(&client->dev, NULL); if (IS_ERR(sgtl5000->mclk)) { ret = PTR_ERR(sgtl5000->mclk); dev_err(&client->dev, "Failed to get mclock: %d\n", ret); /* Defer the probe to see if the clk will be provided later */ if (ret == -ENOENT) ret = -EPROBE_DEFER; goto disable_regs; } ret = clk_prepare_enable(sgtl5000->mclk); if (ret) { dev_err(&client->dev, "Error enabling clock %d\n", ret); goto disable_regs; }
And the accompanying output from dmesg:
[ 1199.266056] sgtl5000 0-000a: Failed to get mclock: -2
Here are the modifications I made to
OMEGA2.dtsi
, I know they are being loaded because my pinmux is being updated properly and I have useddtc
to make sure the blob is correct.{ /*... other definitions omitted for brevity ... */ refclk: refclk@0 { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <12000000>; // 12 MHz }; ); &i2c { status = "okay"; sgtl5000: sgtl5000@a { #sound-dai-cells = <0>; compatible = "fsl,sgtl5000"; reg = <0xa>; clocks = <&refclk>; }; };
Is there something else I have to do to make fixed-clock work? I looked through
kernel_makeconfig
but didn't see anything obvious.