Welcome to the Linux Foundation Forum!

Attempting to upgrade audio hardware and finding the correct drivers.


I am attempting to update some hardware on an embedded Linux system (kernel- and I was hoping to find some guidance here (new to Linux about 4 months worth of experience). The hardware components that will be changing are the audio codec and the amplifier. Specifically, the board (i.mx51) will migrate its old wm8753 codec to a wm8750 (which no machine driver exists for) and the amplifier is changing from a SA48631TK to a MAX98307-TQFN16.

The codec driver for the new wm8750 does exist in the kernel and I believe I have found the old machine driver that was used for the old codec: kernel- The documentation says that ASoC splits the system into 3 drivers: codec driver (wm8753.c), machine driver (imx-ccwmx51-wm8753.c) and a platform driver.

The way I found the machine driver was with a grep search in the kernel main directory: grep -lr "struct snd_soc_card" * I tried a similar strategy to find the platform driver but the results are not inclusive enough considering I am not aware of what the naming schema would be for such a driver.

I was hoping the community might help me understand a few things:

-How to find the platform driver
-Will I need to alter the platform driver
-Since there is no machine driver for the wm8750 can the old machine driver for the old codec be altered to work for the wm8750
-Will I need to make changes anywhere in the kernel to reflect the change in the amplifier
-Can I ping the new hardware to differentiate it from the old hardware s/t during installation the wrong code will not be loaded onto the wrong box

I have datasheets for both codecs and amplifiers and a circuit diagram if anyone would find that information of use. Your help and attention would greatly appreciated, thanks!


Upcoming Training