Julian Scheel wrote at Wednesday, October 19, 2011 11:27 PM:
Am 19.10.2011 um 18:12 schrieb Stephen Warren:
I believe the idea was to keep as much as possible of the audio related information in the audio drivers rather than in board files. The GPIO IDs are in platform data since the audio driver can't reach into the mach-tegra gpio_names header since it's not public.
Ok.
What I'd like to see in the nc_pins case is the DAPM core automatically perform these calls based on which pins the codec has which aren't mentioned in card->dapm_routes; I haven't investigated whether that's actually possible without breaking unrelated boards though.
Well actually the current state can break unrelated boards as well.
By "unrelated", I meant boards other than Tegra boards; AFAIK, the current Tegra driver isn't broken for any board that the current driver expects to support.
...
Eventually, I see most of these tables moving into device-tree, with the only thing hard-coded into tegra_wm8903.c being all the clock and format setup code.
I am not aware how much work this would be, as I have not yet worked with device tree at all. I would propose to change the init code to auto detection based on the dapm routes for now. I should find the time to make up a patch, if you agree.
I believe a secretlab employee was working on DT bindings for the Tegra+WM8903 machine driver, although I haven't seen any updates on this front recently.
By all means make the existing driver calculate the nc pins automatically. I suspect the implementation should probably be in the ASoC core, and Mark pointed out it should be optional so as not to break any other (non-Tegra WM8903) boards.