On Thu, Feb 02, 2012 at 10:11:26PM +0800, Shawn Guo wrote:
On Thu, Feb 02, 2012 at 01:26:18PM +0000, Mark Brown wrote:
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
Yes (you need to check for module too, there's a macro for that the name of which escapes me right now).
I do not think it's nice and consistent to the way that imx sub-architecture adds platform device.
Well, the i.MX thus far has had relatively few of these always present type devices - it makes sense to make things conditional for devices with external signals but for things entirely within the SoC the above is less work.
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.
That seems like more work than is needed for boards, same issue applies.