On 12.09.2013 05:12, Michael Jordan wrote:
If I am trying to ask some questions about the alsa system, do I need to copy somebody directly to get a response? I have posted about 4 questions on the group in the last few months, and I have not even gotten a slap on the hand.
The reason I am contacting you is you have mentioned working on the TLV320AIC3X which is the chip used on the OMAPL138 board that we have. I am attempting to write a driver for a PCM3168A which we have already constructed a board for, and plugs into the 100 pin audio expander connecter. I have the basic draft of a driver, but everything in the code seems to be fairly strongly coded for the DA850 boards to use the TLV320AIC. I can prevent it loading, and my module will load, but things are not "connecting" internally. I assumed that I would need to make some changes in the arch/arm/mach-davinci/board-da850-evm.c.
In general, you shouldn't have any audio specific code in arch/arm/mach-davinci/*.
However what I am running into is chasing me up a trail that eventually has me modifying mach-types.h and creating a whole new board configuration. I said ok, so I copied board-da850-evm.c to board-da850-evm-mod.c which made it necessary for me to begin modifying some Kconfig's, etc., and I still cannot get the kernel to compile with the new kernel driver.
I just need to know, am I heading down the wrong path with this? I have a pcm3168a.c and pcm3168a.h which have a basic structure for the new codec,
For reviews, please post patches against the current mainline linux git tree to this list.
but I cannot figure out how to get the system to actually use it because it basically appears that the TLV320AIC3X is "hard-wired" into the system.
Consider the following basics:
- board files in arch/arm/ should only contain basic machine-specific hardware setup (including i2c/spi device matching) - in ALSA, things are structured in machine, platform and codec parts, which are separated from each other in order to make them system and platform generic. Make sure to read Documentation/sound/alsa/soc/* for this.
Also note that traditional board files are going away. If you want your platform to be future-proof, start using device-tree files to describe your board. As a starting point, have a look at arch/arm/boot/dts/da850-evm.dts in the current mainline kernel git.
With the upcoming simple-card DT support, you might even be able to avoid writing an ASoC maschine driver altogether.
Daniel