On Fri, Aug 05, 2016 at 05:59:59PM +0100, Mark Brown wrote:
On Fri, Aug 05, 2016 at 05:48:45PM +0100, Russell King - ARM Linux wrote:
On Fri, Aug 05, 2016 at 12:02:39PM +0300, Jyri Sarha wrote:
That may be a problem. The ASoC card device tree binding current looks for the ASoC DAI's parent's of-node if it can not find the node for the DAI-device itself.
I don't follow. The "parent" of this audio_pdev device above is the "platform" device - /sys/devices/platform. If ASoC is referencing the parent of the above platform device for some reason, it's probably not going to get anything useful from such an attempt.
Any other ASoC codec driver where the codec platform device was declared with a NULL parent pointer also ends up as a child of that same location.
I'd _really_ be surprised if ASoC is even doing what you describe, because such an action is totally illogical (as can be seen from my description above.)
We do have some stuff in there in order to handle MFDs - they'll instantiate a Linux-internal virtual platform device as a child of the DT device that represents the device as a whole. We're definitely not expecting to find anything for parentless platform devices though, it's only done if the ASoC level device has no of_node and the parent does.
And if we make the hdmi-codec device a child of the I2C device which does have an of-node, what will happen?