This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/TLV320AIC3104-Q1: TLV320AIC3104-Q1 using with Linux kernel 3.4

Part Number: TLV320AIC3104-Q1

Tool/software: Linux

Hi all,

I am a hardware engineer currently stuck in the world of Kernel. The problem that I have is the following, we have an ARM platform running on Kernel 3.4 and we want to use driver for the TLV320AIC3104-Q1. I see that the driver is already available in Kernel, and what i do not know is how to "inform" the Kernel to use it. So, for me it is clear how to do that inside the device tree, but unfortunately this kernel doesnt support device tree. In this post:

The guy is talking about a very specific structure:

static struct snd_soc_dai_driver aic3x_dai = {
.name = "tlv320aic3x-hifi",
.playback = {
.stream_name = "Playback",
.channels_min = 1,
.channels_max = 2,
.rates = AIC3X_RATES,
.formats = AIC3X_FORMATS,},
.capture = {
.stream_name = "Capture",
.channels_min = 1,
.channels_max = 2,
.rates = AIC3X_RATES,
.formats = AIC3X_FORMATS,},
.ops = &aic3x_dai_ops,
.symmetric_rates = 1,

I do not know whre should this kind of code be placed. I looked inside some board specific files, such as board.h and gpio_mux something .h and they all look similar to the one above. I would like to ask about the principle of instantiating peripherals in older kernels. Where should I copy this file and what else should I provide to the Kernel via editing source files?