On Sun, Jun 17, 2018 at 10:03:54PM +0200, Robert Jarzmik wrote:
The new ac97 is working well in a platform data build. But in the device tree case, there is an issue, triggered by our review in [1].
The main issue is the lack of one clock.
The device hierarchy is :
- platform device sound@40500000 (the AC97 controller) -> ac97 device sound@40500000:0 (the discovered ac97 IP for a wm9713)
Now the issue is here :
- sound/ac97/bus.c:419, function ac97_get_enable_clk()
- the clk_get() fails
The sound@40500000:0 device was automatically created by the AC97 bus code, but I don't see any way to provide this device the "ac97_clk" ... How do you think this is supposed to work, and how can my devicetree description provide this clock ?
This sounds like a DT question - how do you hook things up using DT to a device that will be enumerated from the hardware? I'm not sure what best practice is here, adding Rob and Frank.
[1] Discussion reference https://groups.google.com/forum/#!msg/linux.kernel/6_zIXK_maA4/RMYsmLlRMgAJ Look for "You probably mean the BITCLK clock."
[2] Device tree extract ac97: sound@40500000 { compatible = "marvell,pxa270-ac97"; reg = < 0x40500000 0x1000 >; interrupts = <14>; reset-gpios = <&gpio 95 GPIO_ACTIVE_HIGH>; #sound-dai-cells = <1>; pinctrl-names = "default"; pinctrl-0 = < &pinctrl_ac97_default >; clocks = <&clks CLK_AC97>, <&clks CLK_AC97CONF>; clock-names = "AC97CLK", "AC97CONFCLK"; };