Introduction to the Cirrus Logic Audio Card
With the launch of the Model B+ there was one significant, yet highly appreciated change which meant the existing audio card with the P5 pogo pins was no longer compatible with the Model B+. This is a mechanical limitation and unfortunately it wasn't possible to find a neat solution for the existing card.
To deliver the same audio experience we have updated and created a new audio card for Model B+, called the Cirrus Logic audio card. For anyone who may have missed it Wolfson Microelectronics was acquired by Cirrus Logic in the summer of 2014, hence the name change for the audio card.
This short blog introduces the new Cirrus logic audio card and provides some background on hardware and software developments.
From a hardware perspective if it isn't broke then don’t mess with it - that was the simple approach we took to the hardware design.
So the updated audio card uses the same core components (WM5102 and WM8804) and has the same core architecture as the original card. From a features perspective there is no significant change however we have listened to the feedback and made some minor improvements. This is mainly around a back powering option, changing the expansion header to 2.54mm pitch, increasing the expansion header to make the unused GPIO pins from the Raspberry Pi accessible and adding the option to connect external stereo ECM microphones to the line input.
This ensures that users can experience the same high quality audio experience using Model B / B+ or A+.
Please refer to the table on the main Cirrus Audio card community page, this provides a good summary of the feature comparison between cards.
The key take away on hardware is that the same primary functions remain on both audio cards with only minor changes in hardware design.
From a software perspective we continue to update and improve.
Firstly the software for Model B and Model A+/B+ is exactly the same, automatic detection and pin mapping is included so there is no need for different compiled software kernels for the two boards. You can use the Cirrus 3.12 kernel image on either the Wolfson or Cirrus boards with no manual configuration or setup required.
What is currently available from a software perspective
- A Raspbian image is available for download from the E14 community website using kernel 3.12. This will support the Model B, B+ and A+ using either the Wolfson or Cirrus audio cards.
- We have also published our source code for the 3.12 kernel on our own newly created github repository. You can find details and the source code here - https://github.com/CirrusLogic/rpi-linux/wiki
From the existing Raspberry Pi pull request we received good feedback on issues that users discovered, we have where possible addressed the issues and these are incorporated in the Cirrus github.
With regards to upstreaming into the Raspberry Pi kernel and in particular Kernel 3.12, we have encountered issues relative to how the kernel operates when the card is not connected, there are also issues which impact other audio cards. We have tried to find a solution to this but unfortunately the effort is not insignificant and reaches further than our own drivers. Therefore we are currently unable to support inclusion into the official Raspberry Pi 3.12 kernel.
We have discussed this with the maintainer and he is in support of this limitation and also with regards to our plans going forward.
What is our current plan going forward
Integration into the Raspberry pi kernel and in turn the Raspbian distribution remains our end goal. With the issues we have encountered integrating into the 3.12 kernel we are now focusing our efforts on integration to the latest kernel (3.18). The 3.18 kernel in particular adds support for device tree, this in turn provides support for add on modules and in particular will allow the issues with multiple I2S audio cards in 3.12 to be addressed. The Raspberry Pi kernel is planning to move from the current 3.12 kernel in the future so this provides an opportunity to add future support as part of the standard distribution.
There are now two audio cards available for the appropriate model of Raspberry Pi, both cards use the same software and most importantly both will deliver the same HD audio experience for both capture and playback.
We hope you find the new audio card a worthwhile addition to your Raspberry Pi Model B+ experience.