On Thu, Feb 02, 2012 at 01:26:18PM +0000, Mark Brown wrote:
On Thu, Feb 02, 2012 at 09:17:18PM +0800, Shawn Guo wrote:
On Thu, Feb 02, 2012 at 12:09:01PM +0000, Mark Brown wrote:
Since the audmux is a part of the SoC silicon shouldn't the SoC just register the device without individual boards having to do anything (possibly conditional on ASoC being selected in Kconfig or something)? It's going to be connected in exactly the same fashion on any system using the SoC.
Hmm, we are trying to save adding the device for those boards which do not route any audmux pins out at all.
That's why I'm saying perhaps make it conditional on having ASoC built (or even on having the AUDMUX driver built).
Do you mean by having the below in some place like function imx31_soc_init()?
#ifdef CONFIG_SND_MXC_SOC_AUDMUXV2 imx_add_platform_device("audmux-v2", 0, audmux_res, ARRAY_SIZE(audmux_res), NULL, 0); #endif
I do not think it's nice and consistent to the way that imx sub-architecture adds platform device.
Furthermore, when a DT based board boots here, the code is broken. Explicitly adding the device by individual board as needed can easily align with DT based boards. By default, the audmux node in <soc>.dtsi file has status = "disabled", and any board that needs audmux device only need to overwrite status property of audmux node as 'okay' in its <board>.dts. Then DT core will add the audmux device when the board boots.