Jump to content
  • 0

Linux Driver for Audio Codec on ZYBO


endluri.ram

Question

Hi,

 

I am trying to write a linux device driver for a project which uses audio codec. I am using the ip axi_i2s_adi codec for the project on ZYBO . I see that the functions in the demo file are written for Vivado. I mean the functions uses XIlinx header files and functions. I think I cannot use those to build device driver. If somebody has written device driver by themselves or know where i can find, please share the details with me.

 

Thank You,

Ramu

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

Writing a Linux device driver is very different than writing a typical program and can be quite complicated. The best way to go about learning how to do it in my opinion is to grab a book on the subject. I used both "Linux Kernel Development" by Robert Love, and "Linux Device Drivers" from O'REILLY to learn the subject.

Beyond that, you will want to look into what are called platform drivers, which use information about the hardware provided by the device tree. I think the best way to understand these are looking at examples, such as the UIO driver provided by Xilinx.

Lastly, if you are wanting the audio codec to behave like the audio jacks on your computer, then you will need to write a driver that ties it into the ALSA subsystem. This is arguably one of the most complicated systems in the kernel, and will be a difficult task (at least that is my understanding).

Clearly this will be a long task to accomplish. Unfortunately we don't have anything yet on the audio front working in Linux on our boards, so you are on your own for now. I know ADI has done some work to get their audio codecs supported in Linux on Xilinx FPGA boards, but I have no idea if they actually accomplished this. You may want to poke around their materials and Linux community to see if they can provide any help. 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...